- GraphQL Schema Language Cheat Sheet (github.com)
GraphQL Cheat Sheet
This quick reference cheat sheet provides a brief overview of GraphQL.
Also see
Getting Started
Enums
enum USER\_STATE { NOT\_FOUND ACTIVE INACTIVE SUSPENDED } type Root { stateForUser(userID: ID!): USER\_STATE! users(state: USER\_STATE, limit: Int = 10): [User] }
Unions
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
Interfaces
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
Custom Scalars
scalar Url type User { name: String homepage: Url }
Input Types
input ListUsersInput { limit: Int since\_id: ID }
type Mutation { users(params: ListUsersInput): [User]! }
Input Arguments
#Basic Input
type Query { users(limit: Int): [User] }
#Input with default value
type Query { users(limit: Int = 10): [User] }
#Input with multiple arguments
type Query { users(limit: Int, sort: String): [User] }
#Input with multiple arguments and default values
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] }
Type Modifiers
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 Definitions
scalar | Scalar Type |
type | Object Type |
interface | Interface Type |
union | Union Type |
enum | Enum Type |
input | Input Object Type |
Built-in Scalar Types
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 |
Schema
schema | GraphQL schema definition |
query | Read and traverse data |
mutation | Modify data or trigger an action |
subscription | Run a query when an event occurs |
Overview
- An alternative approach to RESTful APIs
- GraphQL is a query language for APIs
- Easily describe the shape of the GraphQL API using clear shared terms.
- Clients issue queries/mutations to read and update data
- GraphQL syntax can express complex entity relations
- Libraries to implement GraphQL in different languages GraphQL