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] }