GraphQL is for Everyone
Eve Porcello
@eveporcello
bit.ly/graphqleveryone
Eve Porcello
@eveporcello
eve@moonhighway.com
What is GraphQL?
{ }
{ }
Query
Response
GraphQL Server
DSL
type User {
id: ID!
firstName: String!
lastName: String!
age: Int!
admin: Boolean!
}
How We Get Data with REST
/lifts/panorama
/trails/ocean-breeze
Noice!
/trails/songstress
/trails/hemmed-slacks
/trails/blackhawk
[
{
"name": "Panorama",
"type": "gondola",
"capacity": 8,
"status": "open",
"manufacturer": "Garaventa",
"built": 2014,
"summer": true,
"night": false,
"elevation_gain": 2800,
"time": "9 minutes",
"hours": "9:00am - 4:00pm",
"updated": "9:45am",
"trails": [
"/class/api/snowtooth/trails/ocean-breeze",
"/class/api/snowtooth/trails/songstress",
"/class/api/snowtooth/trails/hemmed-slacks",
"/class/api/snowtooth/trails/blackhawk"
]
}
]
{
"name": "Ocean Breeze",
"lift": [
"/class/api/snowtooth/lifts/panorama"
],
"difficulty": "intermediate",
"status": "open",
"groomed": false,
"snowmaking": false,
"trees": true,
"night": true
}
{
"name": "Hemmed Slacks",
"lift": [
"/class/api/snowtooth/lifts/panorama"
],
"difficulty": "intermediate",
"status": "open",
"groomed": false,
"snowmaking": false,
"trees": true,
"night": false
}
{
"name": "Songstress",
"lift": [
"/class/api/snowtooth/lifts/panorama"
],
"difficulty": "expert",
"status": "closed",
"groomed": false,
"snowmaking": false,
"trees": true,
"night": false
}
{
"name": "Blackhawk",
"lift": [
"/class/api/snowtooth/lifts/astra-express",
"/class/api/snowtooth/lifts/panorama"
],
"difficulty": "intermediate",
"status": "open",
"groomed": false,
"snowmaking": false,
"trees": false,
"night": false
}
/lifts/panorama
/trails/ocean-breeze
/trails/songstress
/trails/hemmed-slacks
/trails/blackhawk
How We Get Data with GraphQL
That's what's up
query {
lift(name:"Panorama") {
status
trails {
name
status
}
}
}
{
"data":{
"lift":{
"status":"hold",
"trails": [
{
"name": "Hot Potato",
"status": "open"
},
{
"name": "West Elm",
"status": "closed"
}
]
}
}
}
POST /graphql
Query
https://skiresort.com/graphql
What's Next?
Links! bit.ly/graphqleveryone
Thank You!
- Links: bit.ly/graphqleveryone
- Website: www.moonhighway.com
- Mailing List: bit.ly/moonhighway
- Twitter: @eveporcello
GraphQL is for Everyone
By Moon Highway
GraphQL is for Everyone
- 907