GraphQL 文档

GraphQL 格式化看清结构,分清校验范围

选择操作文档、SDL 或变量 JSON。需要检查字段时,在操作文档模式下补充完整的 SDL Schema。

GraphQL 格式化

输入

结果

文档仅在当前浏览器内处理,不请求 API,不保存历史,也不把输入放进网址。

选项

无 Schema 时仅检查语法;提供完整 SDL 后检查静态字段与类型。变量仅检查 JSON 对象语法,不核对变量值是否符合声明类型。

文档与 Schema 各限 100,000 字符,变量限 20,000 字符;GraphQL 限 20,000 个词法单元、100 层嵌套,单次处理最多 8 秒。

请输入文档或载入示例。

GraphQL 格式化适合整理日志里挤成一行的查询,也适合提交代码前核对片段和选择集。排版结果与原文分开显示,原来的注释和输入内容仍可回看。

能解析不等于能在目标接口执行。状态行会明确区分仅语法检查与基于 Schema 的静态检查,避免把排版成功误当作字段和参数都正确。

为什么使用 GraphQL 格式化

片段和操作放在一起看

GraphQL 格式化会把嵌套选择集展开成两空格缩进,保留命名操作、片段定义和字段顺序。切到结构视图即可查看源行号,无需在长查询中反复寻找定义;片段引用不会被自动展开。

紧凑文档展开为带缩进的多行结构,旁边单独展示变量对象。

补上契约,才能检查字段

GraphQL 查询校验在没有 Schema 时只能判断语法。粘贴完整类型定义后,才能发现未知字段、缺失参数或不兼容的变量声明。错误会指出来源,方便回到文档或 Schema 修正。

同一查询通过语法检查,加入类型结构后,一个不匹配的字段被标成珊瑚红色。

先选范围,再读结果

01

区分操作、类型与变量

查询、变更、订阅及片段放在操作文档模式;单独的 type 或 extend 片段放在 SDL 模式。只想整理变量时可直接选变量模式,不需要先写一条查询。

02

通过输入标签补充上下文

操作文档模式保留文档、Schema 和变量三个输入。来回切换标签不会丢内容。载入示例会先展示三处输入的替换预览,确认后才应用,也能撤销恢复。

03

留意结果更新时机

自动处理在停顿 400 毫秒后运行;关闭后可点处理文档或按 Ctrl/Cmd+Enter。修改任一输入或文档类型会让结果过期,切换格式化、压缩或结构视图则直接使用同一次计算。

围绕文档本身的四种能力

语法感知的压缩

GraphQL 压缩会移除可忽略字符,同时保留相邻名称间必要的分隔。字符串中的空白仍属于值,不会被随意删除。格式化与压缩均保留字段顺序,不对查询做优化改写。

操作与类型结构查看

结构列表展示操作、变量声明、片段、字段和 SDL 类型定义,并附上原文行号。每次显示 100 项;下载结构时输出完整 JSON 列表,不会只下载屏幕上已展开的部分。

变量数字不经过浮点转换

GraphQL 变量格式化保留 9007199254740993 这样的大整数,也保留 1.2300e+40 的数字写法。对象键按输入顺序排列,重复键直接报错,不会悄悄选择最后一个值。

可定位的错误详情

语法错误提供输入来源与可获得的行列位置,点击错误可跳回对应编辑区。文档语法正确但 Schema 校验失败时,仍显示排版文本供修复;校验通过前不开放复制和下载。

检查范围和真实边界

静态通过不保证服务端接受
工具不执行操作,也不调用解析器函数获取数据。变量值仅按 JSON 对象检查,不做必填值验证、运行时类型转换、自定义标量校验或业务规则判断;文档里的变量类型声明仍参与静态检查。
可选 Schema 必须是完整 SDL
此输入不接受 introspection JSON,也不远程加载类型。请提供查询根、被引用类型与自定义指令定义。不支持 Federation 组合或代码生成;独立 SDL 模式只检查语法,允许不完整的类型片段。
注释与字符串描述处理不同
格式化和压缩输出都会删除 # 注释,但保留 SDL 的字符串描述。输入原文不被覆盖。工具不会自动修复语法、排序字段、读取外部片段或计算持久化查询哈希。
超限即停止,不截断输入
文档及 Schema 分别限 100,000 字符,变量限 20,000 字符。GraphQL 最多 20,000 个词法单元、100 层符号嵌套;JSON 也限制为 100 层。工作线程超过 8 秒会终止,请拆小文档重试。

GraphQL 格式化常见问题

如何判断编辑器里的文本是否符合 GraphQL 语法?

不提供 Schema 也可以用语法解析器检查括号、名称、选择集等是否符合语法。本工具在操作文档模式下会明确标记“未检查 Schema”,因此不能据此断言字段存在或查询可执行。

如何根据服务端 Schema 校验 GraphQL 操作?

把服务端完整 SDL 放入 Schema 输入标签,把查询及所用片段一起放入文档。工具会运行标准静态规则,检查字段、参数和声明类型;不会认证请求、执行查询或验证服务端解析逻辑。

为什么 GraphQL 变量被提示为无效 JSON?

变量采用严格 JSON 语法,不是 GraphQL 输入对象语法或某种编程语言的字典。键和字符串需要双引号,不能有尾逗号,根节点必须为对象;本工具也拒绝重复键。

为什么会出现“Query root type must be provided”错误?

这表示作为完整 Schema 使用的内容缺少有效查询根。可定义 type Query,或通过 schema 声明指定已有的对象类型。如果只想整理孤立类型或扩展,请改用 SDL 模式。

为什么打印 GraphQL 查询时缺少片段定义?

只打印一个操作节点不会自动补出别处的片段定义。本工具打印整份粘贴文档,因此能保留其中已有的片段;需要把引用的定义一并粘贴,不会从其他文件读取,也不会自动内联片段。

遇到未覆盖的文档情况?

让下一次文档检查更清楚

用 GraphQL 格式化整理当前文档,确认状态行标明的校验范围,再复制或下载需要的结果视图。