This quick reference cheat sheet provides a brief overview of GraphQL.
schema | 
GraphQL schema definition | 
query | 
Read and traverse data | 
mutation | 
Modify data or trigger an action | 
subscription | 
Run a query when an event occurs | 
Int | 
Signed 32‐bit integer | 
Float | 
Signed double-precision floating-point value | 
String | 
UTF‐8 character sequence | 
Boolean | 
true or false | 
ID | 
A Unique identifier | 
scalar | 
Scalar Type | 
type | 
Object Type | 
interface | 
Interface Type | 
union | 
Union Type | 
enum | 
Enum Type | 
input | 
Input Object Type | 
String | 
Nullable String | 
String! | 
Non-null String | 
[String] | 
List of nullable Strings | 
[String]! | 
Non-null list of nullable Strings | 
[String!]! | 
Non-null list of non-null Strings | 
type Query {
    users(limit: Int): [User]
}
type Query {
    users(limit: Int = 10): [User]
}
type Query {
    users(limit: Int, sort: String): [User]
}
type Query {
    users(limit: Int = 10, sort: String): [User]
}
type Query {
    users(limit: Int, sort: String = "asc"): [User]
}
type Query {
    users(limit: Int = 10, sort: String = "asc"): [User]
}
input ListUsersInput {
    limit: Int
    since_id: ID
}
type Mutation {
    users(params: ListUsersInput): [User]!
}
scalar Url
type User {
    name: String
    homepage: Url
}
interface Foo {
    is_foo: Boolean
}
interface Goo {
    is_goo: Boolean
}
type Bar implements Foo {
    is_foo: Boolean
    is_bar: Boolean
}
type Baz implements Foo, Goo {
    is_foo: Boolean
    is_goo: Boolean
    is_baz: Boolean
}
Object implementing one or more Interfaces
type Foo {
    name: String
}
type Bar {
    is_bar: String
}
union SingleUnion = Foo
union MultipleUnion = Foo | Bar
type Root {
    single: SingleUnion
    multiple: MultipleUnion
}
Union of one or more Objects
enum USER_STATE {
    NOT_FOUND
    ACTIVE
    INACTIVE
    SUSPENDED
}
type Root {
    stateForUser(userID: ID!): USER_STATE!
    users(state: USER_STATE, limit: Int = 10): [User]
}