GraphQL 格式化 + 压缩, 美化 query/mutation/subscription/schema, 校验语法, 支持一键压缩为单行用于 HTTP body。
- 本地处理
- 分类 开发运维
- 适合 格式化、校验、压缩或检查和代码相关的文本。
格式化结果会显示在这里。这个工具能做什么
浏览器内运行的 GraphQL 格式化器。支持所有可执行形式: query / mutation / subscription / fragment / inline fragment, 含变量、别名、参数、指令 (@include / @skip / @deprecated); 也支持完整 SDL: type / interface / union / enum / input / scalar / schema, 含 extend 变体。可选缩进 (2 空格 / 4 空格 / Tab), 可保留或剥离注释, 可按字母排序字段和参数。切到压缩模式, 同样的输入会压成单行, 直接塞到 curl -d、fetch body 或 HTTP 客户端里, 不 用再手动转义换行。语法错误带准确的行+列, 还附上前后三行源码上下文, "Unexpected }" 终于有了门牌号。输出下方会列出 query 里所有 $variable 及其类型 ($id: ID! → ID! 必填)。100% 浏览器本地, 没有引入 spec 库, 没有 任何网络请求, 生产 query 也能放心粘。
工具细节
- 输入
- 文件 + 文本
- 页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
- 输出
- 即时结果 + 复制 + 下载
- 结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
- 隐私
- 浏览器本地处理
- 主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
- 保存 / 分享
- 可分享链接状态
- 关键设置会进入 URL,复制链接后别人能复现同一组参数。
- 性能预算
- 首屏 JS ≤ 35 KB
- 没有声明 WASM 依赖,适合快速打开和移动端使用。
- 适用场景
- 开发运维 · 程序员
- 分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。
怎么用
-
1. 输入
把内容粘贴或拖入工具面板。
-
2. 处理
点击按钮,在浏览器内本地处理,文件不上传。
-
3. 复制 / 下载
一键复制结果或下载到本地。
GraphQL 格式化与压缩 适合怎么用
适合穿插在写代码、查问题、做 Review、上线前的小任务里。
适合开发场景
- 格式化、校验、压缩或检查和代码相关的文本。
- 把片段整理好再放进文档、工单、提交或交接材料。
- 不切换工具,快速检查一个小 payload。
开发检查项
- 压缩、混淆这类不可逆处理,先对副本操作。
- 除非确认工具本地处理,不要粘贴密钥和敏感片段。
- 转换后的代码上线前,仍要跑自己的测试或 lint。
下一步可以接着做
这些入口会把当前任务接到更完整的工具链里。
真实使用场景
格式化 webhook 抓到的单行 query
你刚抓到一段 webhook payload, 里面那段 GraphQL 是单行 1.4 KB, 根本没法看。粘进来, 点格式化, 一份多行的 operation 出来了, 每字段一行、2 空格缩进, 下方的变量面板还告诉你需要 $cursor: String / $limit: Int = 20 才能调通。三秒, 不用开 Node REPL, 也不用为了跑一次 print(parse(x)) 就 npm install graphql。
把 Apollo query 压成 HTTP body 单行
Apollo 的 query 写在 .graphql 文件里, 有注释、有空行、80 行 排版。你要为一次性 cron 任务用 curl 裸 POST 它。粘进来, 点 压缩, 复制。输出就一行, 注释自动去掉 (留着会污染整行), 直接塞进 curl -d '{"query":"..."}' , 不用再手动 \\n 转义。
手改完 SDL, push schema 前给个兜底校验
你手写加了一个新的 interface 和三个 type 进 SDL。整个文件粘 过来, 解析器精准告诉你那个多余的 : 在 47 行 19 列 (附带前后 3 行源码)。改完再粘一次, "GraphQL 有效"角标出现。接下来 graphql-codegen 那步在 CI 里就不会再吐一句含糊的 "unknown token at offset 1284"。
用排序字段+排序参数 diff 两份长 query
QA 发来一段 query, 说"应该跟 main 上那条一样", 但 snapshot 测试 diff 出 60 行变化。把两份都开启"排序字段+排序参数"格式 化, 各自粘到 diff viewer 里 —— 作者重排带来的噪声全消失了, 真正那一处语义变化 (User 类型上少了一个 id 字段) 直接跳出来。
把 printed schema 转成可读的规格文档
你从 gateway 拉了一份 printed schema (一坨大文本)。粘进来, 用 4 空格缩进 + 保留注释格式化, 结果复制到团队 wiki。声明 按定义分组, 注释还在它原来的行上, 变量面板会自动忽略 SDL (SDL 里没有 $var), 所以输出是干净的文档, 不是工具的导出 垃圾。
常见踩坑
粘了 JSON 外壳 `{"query": "..."}` —— 本工具只认裸 GraphQL, 不认 wire 格式。先把 query 字段的值抠出来; 抠不出来可以用 JSON Formatter 工具帮忙。
把"语法通过"当成"schema 校验通过"。本工具只检查 GraphQL 语法, server 端的字段类型、deprecated 字段、未知字段都不会被标出。要做 schema 感知校验, 用 codegen 或真正的 introspection 客户端。
忘了 GraphQL 的 # 注释延续到行尾。如果你写了 `field # 说明` 然后去压缩, 整段 tail (包括同一逻辑行后面的字段) 都会丢, 所以压缩模式直接把注释全部删掉, 不冒这个险。
隐私说明
你的 GraphQL 是用一段大约 400 行的手写 parser 解析的, 直接打包进了 这个页面 —— 没有 graphql-js, 没有任何网络请求, 没有去远程拉 schema。 格式化时打开 DevTools → Network 看, 没有任何带着 query 内容的请求 发出。URL 里只会同步选项 (缩进、排序开关、模式), query 本身永远 不会写进 URL —— 因为生产 query 经常引用你不想出现在分享链接里的 内部字段名。粘真实的 operation, 含 PII 参数值、内部 ID、auth 上下文, 全都安全。
常见问题
类似工具组合
做你这行的人, 还会一起用这些。