跳到主要内容

GraphQL Schema 格式化工具

API reference

校验并重新格式化 GraphQL SDL(Schema Definition Language,模式定义语言),支持 type、interface、enum、input、scalar、union 和 directive 定义。无效的 schema 会报告精确的语法错误及行号和列号;有效的 schema 会以统一的 2 或 4 空格缩进重新输出,并可选择按字母顺序排列类型和字段。

输入

Drop a file or browse
One file · text
或

格式化选项

输出

格式化后的 Schema
 
这对您有帮助吗?

使用此工具的更多方式

REST API

curl -X POST https://api.iotools.cloud/v1/tool/graphql-schema-formatter \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "graphqlInput": "\"\"\"\nA simple blog API schema.\n\"\"\"\nschema {\n  que…",
    "indentWidth": "2",
    "sortAlphabetically": ""
  }'

替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。

让 AI 代理执行

Use the IOTools `graphql-schema-formatter` tool (GraphQL Schema Formatter) on this input:

YOUR_INPUT_HERE

将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。

嵌入式小组件

<iframe
  src="https://iotools.cloud/embed/graphql-schema-formatter/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="GraphQL Schema 格式化工具 — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。

每次 API/MCP 调用费用5 积分起
需要更多积分?查看定价

也可通过

使用指南

粘贴一段 GraphQL schema——用 SDL(Schema Definition Language,模式定义语言)编写的 type、interface、enum、input、scalar、union 或 directive 定义——即可获得经过校验、格式统一的版本。GraphQL Schema 格式化工具 使用 GraphQL 自身采用的同一个参考解析器来解析你的 schema,因此真正的语法错误会附带确切的行号和列号,而不是猜测;有效的 schema 则会以整洁统一的间距重新输出。

它适用于 schema 格式混乱的各种情况:从 Pull Request 中复制的、从文档里摘出的、由 code-first 框架生成的,或者 AI 助手给出的缩进不一致的内容。直接粘贴进来,即可得到规范化的版本。

使用方法

  1. 将 GraphQL SDL 粘贴到输入框中,或上传 .graphql、.gql 或 .sdl 文件。
  2. 可选:设置 缩进宽度(2 或 4 个空格),并切换 按字母顺序排列类型和字段。
  3. 复制格式化结果,或将其下载为 schema.graphql。

输入内容或更改选项时,格式化会自动进行。

功能说明

  • 真正的校验。 你的 schema 会由 graphql-js 解析,它是 GraphQL 规范的参考实现,也是 Apollo Server、GraphQL Code Generator 等工具背后所用的同一个解析器。格式错误的 schema(缺少冒号、大括号未闭合、无法识别的 token)会返回解析器给出的确切错误信息,以及出错位置的行号和列号,而不会悄悄输出一团混乱的内容。
  • 统一的缩进。 可选 2 或 4 个空格;每个块——type、interface、input、enum、schema 以及多行描述——都会统一重新缩进。
  • 保留描述。 单行描述("...")和块描述("""...""")都会继续附着在它们所说明的类型或字段上。
  • 可选的字母排序。 启用后,顶层定义会先按种类分组(标量、枚举、接口、联合类型、对象类型、输入类型、指令),每组内再按名称排序,schema { ... } 块始终位于最前面;type/interface/input 主体中的字段,以及 enum 主体中的值,也会按字母顺序排列。联合类型的成员顺序保持不变,因为它可能有意义(例如将首选类型放在最前)。

隐私

所有处理都在你的浏览器中、于客户端完成。你的 schema 永远不会被上传到服务器。

它会保留 # 注释吗?

不会。GraphQL 自身的词法分析器会将 # 风格的注释视为无关内容,并在解析前将其丢弃——它们不属于 schema 的 AST,因此任何基于参考解析器构建的格式化工具都无法将其原样还原。而字符串描述("..." 和 """...""")确实属于 schema 的一部分,会被完整保留。

它会校验类型之间的引用吗?

它检查的是语法——SDL 是否能被解析为有效的 GraphQL——而不是完整的 schema 语义(例如未解析的类型引用,或在未声明该指令的地方使用了指令)。若需要这一层的校验,请使用 GraphQL 服务端库构建 schema。

能格式化整个联邦式或多文件 schema 吗?

将它们合并为一份完整文档后粘贴即可——extend type、extend interface 和 extend schema 定义均受支持,并会像其他定义一样被格式化。

“按字母顺序排列”具体会重排什么?

有两件相互独立的事:顶层定义的顺序(先按种类分组,再按名称排序),以及每个定义内部的字段/枚举值顺序。它从不重命名任何内容,也不会更改类型或参数。

graphqlsdlschemaformattervalidatorapibeautify

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。