素材阁

GraphQL 速查

共 24 条 GraphQL 语法,覆盖查询、变量与片段、变更与订阅、Schema 定义、调用与工具 五组内容。支持搜索与分类筛选,点击即可复制。

查询(Query)

按需取字段,不多不少。

查询 / 语法说明
基本查询
给字段起别名(u 为别名)
字段传参
分页 / 排序参数
嵌套查询

变量与片段

复用与动态传参。

查询 / 语法说明
声明变量($id,! 表示必填)
请求体里传变量值
定义片段
使用片段(... 展开)
特殊字段:查看返回的具体类型名

变更与订阅

写操作与实时推送。

查询 / 语法说明
变更(写入),返回创建结果
带变量的变更
订阅(通常基于 WebSocket)
客户端缓存友好的惯例

Schema 定义(SDL)

服务端类型系统。

查询 / 语法说明
对象类型(! 非空,[] 列表)
入口查询类型
入口变更类型
输入类型(用于参数)
枚举
接口与联合类型

调用与工具

发请求与调试。

查询 / 语法说明
GraphQL 端点固定,用 POST 传查询
命令行调用示例
可视化调试与 schema 浏览
简易查询也可用 GET

使用说明

GraphQL 速查:查询、变量与片段、变更与订阅、Schema 定义、调用与工具;支持搜索与分类筛选,点击即可复制。

  1. 按用途点分类:查询、变量与片段、变更与订阅、Schema 定义、调用与工具。
  2. 点「查询 / 语法」列复制片段,替换字段名与参数。
  3. 按需只取需要的字段(避免 REST 的过度获取)。
  4. 用变量传参、用片段复用字段;调试用 GraphiQL。

常见问题

GraphQL 和 REST 有什么区别?
REST 有多个端点、响应结构由服务端定;GraphQL 通常单一端点、由客户端声明要哪些字段,能减少过度获取与多次请求,但缓存与限流更复杂。
query 和 mutation 有什么区别?
query 用于读取(不应有副作用),mutation 用于写入 / 修改。语义区分有助于工程约束与工具优化(如可缓存 query)。
! 和 [] 在 Schema 里什么含义?
! 表示非空(该字段一定返回值);[] 表示列表。组合如 [Post!]! 表示「非空的、元素也非空的列表」。
N+1 问题怎么解决?
服务端常见用 DataLoader 做批量合并与缓存,把逐条查询合并成批量请求,避免一次查询触发大量后端调用。

延伸阅读

相关工具