GraphQL查询构建器

手写 GraphQL 操作意味着要保持大括号、参数和缩进准确无误。这个构建器会为你组装文档:选择查询、变更或订阅,为操作命名,设置根字段,添加参数并列出所需字段。得到的是一段格式规范的、可直接粘贴到 Apollo、urql 或 GraphiQL 中的操作。

如何构建 GraphQL 操作

  1. 1

    选择操作类型

    从下拉列表中选择查询、变更或订阅。这决定了服务器将执行的操作类型。

  2. 2

    为操作命名

    起一个类似 GetUser 的名称,方便服务器记录日志和缓存。名称是可选的,不填也能正常使用。

  3. 3

    设置根字段

    输入要调用的字段,例如 user、createPost 或 orderUpdated。

  4. 4

    添加参数

    添加键值对,如 id: "123" 或 id: $id。键为空的行会被跳过。

  5. 5

    列出字段并复制

    每行输入一个字段,生成查询,然后将格式化后的文档复制到剪贴板。

使用 GraphQL 文档

GraphQL 文档是一组由一个或多个操作及其引用的片段组成的集合。每个操作都会指定一个来自 QueryMutationSubscription 类型的根字段,服务器则解析你请求的选择集。构建器会替你写出操作文本,但它不知道你的 schema,因此在运行操作之前,请将每个字段名和参数名与你的 API 核对。

操作剖析

部分 用途 示例
操作类型 查询、变更或订阅 querymutationsubscription
操作名称 用于缓存和日志 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 对照,并修正拼写。

相关工具

此工具还提供其他语言版本