本快速参考备忘单简要概述了 GraphQL。
schema |
GraphQL 模式定义 |
query |
读取和遍历数据 |
mutation |
修改数据或触发操作 |
subscription |
事件发生时运行查询 |
Int |
有符号 32 位整数 |
Float |
有符号双精度浮点值 |
String |
UTF‐8 字符序列 |
Boolean |
true 或 false |
ID |
唯一标识符 |
scalar |
标量类型 |
type |
对象类型 |
interface |
接口类型 |
union |
联合类型 |
enum |
枚举类型 |
input |
输入对象类型 |
String |
可为空的字符串 |
String! |
非空字符串 |
[String] |
可为空字符串的列表 |
[String]! |
非空的可为空字符串列表 |
[String!]! |
非空的非空字符串列表 |
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
}
实现一个或多个接口的对象
type Foo {
name: String
}
type Bar {
is_bar: String
}
union SingleUnion = Foo
union MultipleUnion = Foo | Bar
type Root {
single: SingleUnion
multiple: MultipleUnion
}
一个或多个对象的联合
enum USER_STATE {
NOT_FOUND
ACTIVE
INACTIVE
SUSPENDED
}
type Root {
stateForUser(userID: ID!): USER_STATE!
users(state: USER_STATE, limit: Int = 10): [User]
}