GraphQL 常用语法速查表

把 GraphQL 日常开发最常用的语法整理成速查,设计 API 和写查询时对照查。

编程语言·共 24 条命令·最后更新 2026-07-19
返回 编程语言

查询 Query 7

{ user { id name } }
基础查询
{ user(id: 1) { name } }
带参数查询
{ users { id name posts { title } } }
嵌套查询
query GetUser($id: ID!) { user(id: $id) { name } }
带变量的查询
{ user { name email } posts { title } }
多字段查询
{ user(id: 1) { name @include(if: $withName) } }
条件包含字段
{ user(id: 1) { name @skip(if: $skipName) } }
条件跳过字段

变更 Mutation 4

mutation { createUser(name: "Alice") { id } }
基础变更
mutation CreateUser($input: CreateUserInput!) { createUser(input: $input) { id } }
带变量的变更
mutation { updateUser(id: 1, name: "Bob") { id name } }
更新操作
mutation { deleteUser(id: 1) { id } }
删除操作

订阅 Subscription 2

subscription { newMessage { content } }
订阅新消息
subscription { userUpdated(id: 1) { name } }
订阅用户更新

类型定义 Schema 7

type User { id: ID! name: String! email: String }
定义对象类型
input CreateUserInput { name: String! email: String! }
定义输入类型
enum Role { ADMIN USER GUEST }
定义枚举
union SearchResult = User | Post
定义联合类型
interface Node { id: ID! }
定义接口
type Query { user(id: ID!): User }
定义查询根
type Mutation { createUser(input: CreateUserInput!): User }
定义变更根

片段与指令 4

fragment UserFields on User { id name email }
定义片段
{ user { ...UserFields } }
使用片段
@deprecated(reason: "Use newField")
标记字段废弃
@cacheControl(maxAge: 3600)
缓存指令

💡 提示

  • GraphQL 查询返回的字段由客户端决定,服务端不需要返回所有字段。
  • 变量用 $ 前缀,在查询外部定义,避免字符串拼接。
  • Schema 定义语言(SDL)是 GraphQL 的核心,先定义类型再实现解析器。