GraphQL Query Language Workshop

Eve Porcello

@eveporcello

eve@moonhighway.com

 

github.com/moonhighway/graphql-query-language

Tahoe City, CA

 

GraphQL is a query language for your API.

query {
  allAttendees {
    name
    favoriteMusician {
      name
    }
    favoriteTree {
      name
    }
    vendor
  }
}

https://treefest.com/graphql

{
  "data":{
    "allAttendees": [
      {
        "name": "Jean Johnson",
        "favoriteMusician": {
            "name": "Plantadestiny"
        },
        "favoriteTree": {
            "name": "SugarPine"
        },
        "vendor": false
      }
    ]
  }
}

https://treefest.com/graphql

  • GraphQL Intro

  • GraphQL Playground

  • Queries

  • Mutations

  • Fragments

  • Interfaces, Unions

  • Subscriptions

Agenda

Pet

Biscuit

Customer

Joe

Pet

Biscuit

Pet

Sandwich

Pet

Jungle

Customer

Joe

enum PetCategory

DOG

CAT

STINGRAY

RABBIT

type Pet

id: ID!

name: String!

category: PetCategory!

        ...

HORSE

sleepAmount: Int

curious: Boolean

favoriteFood: String

floppy: Int

good: Boolean

chill: Boolean

fast: Boolean

streetsmart: Boolean

majestic: Boolean

interface Pet

type Cat extends Pet

id: ID!

name: String

...

sleepAmount: Int

curious: Boolean

id: ID!

name: String!

weight: Float

status: PetStatus

photo: Photo

dueDate: Date

inCareOf: Customer

type Dog extends Pet

id: ID!

name: String

...

good: Boolean

type Rabbit extends Pet

id: ID!

name: String

...

favoriteFood: String

floppy: Int

type Stingray 

extends Pet

id: ID!

name: String

...

chill: Boolean

fast: Boolean

type Horse 

extends Pet

id: ID!

name: String

...

streetsmart: Boolean

majestic: Boolean

type *TBDFuturePet 

extends Pet

id: ID!

name: String

...

newField: _____

newField: _____

Query Language Workshop

By Moon Highway

Query Language Workshop

  • 646