跳到正文

GraphQL 格式化

GraphQL Formatter

格式化查询和 SDL,按 schema 校验文档,并打印它最终解析出的类型。

按惯例风格重新打印一份 GraphQL 文档——一行一个字段,参数之间留空格,按选择集深度缩进。它解析完整的 2021 年 10 月版语法,所以带指令、接口和联合类型的 schema 文件和一条查询一样顺利通过。

🔒 完全在你的浏览器里运行graphqlformatschema

GraphQL 输入

格式化结果

记号流

与输入一致

完整解析 2021 年 10 月版语法——操作、片段,以及整套类型系统语言——再按惯用风格重新排印。注释保留,逗号会被整理掉(它们是被忽略的记号),并且每次运行都会核对输出携带的记号与输入完全相同。

怎么用

  1. 粘贴文档或打开文件

    一条查询、一个 mutation、一个 fragment,或一整份 `.graphql` schema。匿名和具名操作都可以。

  2. 看记号流那一行

    每次运行之后,格式化器都会把自己的输出重新分词并和输入比较。只有布局变了时,统计会显示「与输入一致」——不一致时它会大声喊出来。

  3. 复制或下载结果

    下载的是带正确 MIME 类型的 `.graphql` 文件,可以直接放进 schema 目录。

常见问题

我的逗号去哪了?

GraphQL 把逗号当作忽略记号——它们是有形状的空白。格式化器把它们规范化掉,因为惯例风格里没有逗号,而去掉它们不丢失任何含义。

注释会保留吗?

会,而且每次运行后的比较也检查这一点——输出里的注释记号必须和进去的那些一致。一个把字段上方 `# deprecated` 那行丢掉的格式化器,对下一个读者来说已经把文档弄坏了。

它会按 schema 校验查询吗?

不会。它检查语法,不检查含义——一条请求了不存在字段的查询在语法上无懈可击,格式化得很好。校验需要 schema,而这个页面从来没有它。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。