GraphQL查询构建器
手写 GraphQL 操作意味着要保持大括号、参数和缩进准确无误。这个构建器会为你组装文档:选择查询、变更或订阅,为操作命名,设置根字段,添加参数并列出所需字段。得到的是一段格式规范的、可直接粘贴到 Apollo、urql 或 GraphiQL 中的操作。
如何构建 GraphQL 操作
-
1
选择操作类型
从下拉列表中选择查询、变更或订阅。这决定了服务器将执行的操作类型。
-
2
为操作命名
起一个类似 GetUser 的名称,方便服务器记录日志和缓存。名称是可选的,不填也能正常使用。
-
3
设置根字段
输入要调用的字段,例如 user、createPost 或 orderUpdated。
-
4
添加参数
添加键值对,如 id: "123" 或 id: $id。键为空的行会被跳过。
-
5
列出字段并复制
每行输入一个字段,生成查询,然后将格式化后的文档复制到剪贴板。
使用 GraphQL 文档
GraphQL 文档是一组由一个或多个操作及其引用的片段组成的集合。每个操作都会指定一个来自 Query、Mutation 或 Subscription 类型的根字段,服务器则解析你请求的选择集。构建器会替你写出操作文本,但它不知道你的 schema,因此在运行操作之前,请将每个字段名和参数名与你的 API 核对。
操作剖析
| 部分 | 用途 | 示例 |
|---|---|---|
| 操作类型 | 查询、变更或订阅 | query、mutation、subscription |
| 操作名称 | 用于缓存和日志 | GetUserById |
| 参数 | 传递给根字段的值 | user(id: "123") |
| 选择集 | 字段及嵌套选择 | { user(id: "123") { name posts { title } } } |
| 变量 | 与操作名称一同声明的带类型输入 | query GetUser($id: ID!) { user(id: $id) { name } } |
常见陷阱
- 必需变量以
!结尾。若忘记为模式中标记为NonNull的参数加上它,在解析器运行前就会报出校验错误。 - 文本参数需要引号。 像
123这样的值是数字;文本值需要在参数行中写成带双引号的"123"。 - 联合类型与接口类型需要使用
... on TypeName内联片段来读取特定类型的字段。 - 别名是必需的:当你以不同参数两次请求同一字段时,例如
today: stats(period: DAY)和week: stats(period: WEEK)。 - **连接(Relay 规范)**会暴露
edges { node { ... } }和pageInfo { endCursor hasNextPage };跳过任何一个都会破坏分页。
小贴士
- 保持操作简短并为其命名,以便 Apollo Client 单独缓存它们。
- 将变化的值作为变量而不是字面量传入,这样服务器只需解析一次文档即可复用;在操作名称旁声明变量,例如
query GetUser($id: ID!)。 - 如果一个字段需要多个参数,请将它们写在同一行参数中并用逗号分隔,例如
filter: { status: ACTIVE }作为值。 - 构建器会输出你配置的确切文本。如果操作失败,请先将字段名与当前 schema 对照。
常见问题
不会。它只负责格式化你输入的文本;不需要调用任何端点,也不需要 schema。填写操作各部分后,构建器就会为你组装文档。
可以。使用操作下拉列表在查询、变更和订阅之间切换。其余部分完全相同:名称、根字段、参数和字段。
在参数区域添加行。键是参数名,值是你传入的内容,例如 id: “123” 或 id: $id。键为空的行会被忽略。如果你输入了 $id 这样的变量,请自己在操作名称旁声明它,例如 query GetUser($id: ID!)。
构建器会输出你输入的确切文本。该错误通常意味着某个字段名或参数名与你的服务器 schema 不匹配:请将根字段和每个字段名与 API 对照,并修正拼写。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
编辑器配置生成器
根据你的缩进样式与大小、行尾、字符集和空格规则生成 .editorconfig 文件,让不同集成开发环境(IDE)和编辑器的格式保持一致。
邮箱验证器
验证邮箱地址:RFC 5322 语法检查、实时 MX 记录查询,并显示本地部分、域名和长度详情。不会发送任何邮件。
电话号码验证器
根据各国号码规划检查结构,并显示地区、类型以及E.164、国际、国内和RFC 3966格式。
此工具还提供其他语言版本
- GraphQL-Abfrage-Builder [DE]
- Construtor de Consultas GraphQL [PT]
- أداة إنشاء استعلامات GraphQL [AR]
- GraphQL 쿼리 빌더 [KO]
- Trình tạo truy vấn GraphQL [VI]
- Pembuat Kueri GraphQL [ID]
- เครื่องสร้าง GraphQL Query [TH]
- Constructeur de requêtes GraphQL [FR]
- Kreator zapytań GraphQL [PL]
- Constructor de Consultas GraphQL [ES]
- GraphQL-querybouwer [NL]
- GraphQLクエリビルダー [JA]
- GraphQL-frågebyggare [SV]
- GraphQL Sorgu Oluşturucu [TR]
- GraphQL Query Builder [EN]
- Costruttore di Query GraphQL [IT]
- Построитель запросов GraphQL [RU]