Neatbo.

GraphQL 文档校验

用本地 SDL 或 introspection JSON 校验完整 GraphQL 文档,下载全部静态诊断和字节不变的原件。

浏览器本地处理输入GraphQL 文档 + 本地 SDL 或 introspection JSON输出完整原件 + 静态校验报告单个文件最多 2 MiB · 最多 1 个
  1. 1添加输入
  2. 2调整设置
  3. 3获取结果

工具输入和文件在当前浏览器处理,不会上传。

输入内容

切换工具时在当前标签页临时保留输入。刷新或关闭后清除,较大的结果可能需要重新生成。

⌘ / Ctrl + Enter 运行

或将文件拖到这里

文件留在当前设备,原始文件不会被覆盖。

.graphql · .gql · .json

单个文件最多 2 MiB · 最多 1 个

    0 个字符 · 0 字节
    处理选项

    先填写标记为必填的选项,其余可保留默认值。

    明确选择解析格式;选中文件只替代 schema 文本。

    正在准备处理工具…

    开始之前

    使用已有 schema 检查所有 operation 和 fragment,查看源位置,并把两份原件与完整校验报告一起保存。

    如何使用

    1. 把完整 GraphQL 操作文档粘贴到第一个文本框。
    2. 选择 schema 格式,粘贴本地 SDL、introspection JSON,或选择一个 schema 文件。
    3. 运行静态校验,查看 schemaValid、documentValid 及每条诊断的位置。
    4. 下载两份完整原件和 validation-report.json,再到目标 API 环境验证实际执行。

    支持范围与限制

    粘贴完整操作文档,UTF-8 最多 1 MiB;粘贴 schema 最多 2 MiB。也可选择一个最多 2 MiB 的 schema 文件:只替代第二个 schema 文本框,保留第一个操作文档。明确选择 SDL 或 introspection 格式。原始文件名标签最多 512 个 UTF-8 字节。

    使用 GraphQL.js 17.0.2 的标准静态规则,一起检查全部 operation 和 fragment;不按 operationName 筛选,不提取 React/JavaScript,不请求 endpoint,不运行自定义规则、resolver 或 scalar 强制转换。通过静态校验不代表查询能够执行或响应数据有效。

    Schema 语法、结构或类型错误以及文档语法、语义错误都交付完整诊断报告。Schema 出错时 documentValid 为 null。行和列从 1 开始,列按 UTF-16 单元计数,CRLF 算一个换行;缺少原件坐标的 introspection 结构错误不编造位置。

    文件必须可严格解码为 UTF-8,Unicode 必须成对。接受一个开头 BOM,原始字节与 SHA256 保留它。Introspection 必须是严格 JSON;解码后的重复键、同时出现 __schema 和 data.__schema、或包含 errors 成员会产生 schema 诊断。转义后出现孤立代理字符则原子拒绝。

    Introspection 元数据数字必须是有限 IEEE 754 值,整数值必须在 ±9,007,199,254,740,991 以内。类型、字段、参数、枚举值及 directive 数组中的同名条目不会被覆盖。额外 envelope 元数据不参与语义校验,报告列出其键名,原件保持不变。

    SDL 最多 100,000 个语法 token 和 100,000 个 AST 节点;操作文档各最多 50,000 个。花括号、中括号和圆括号嵌套最多 64 层,无环 fragment 引用链最多 64 个定义。Token 不包括注释、逗号和空白;AST 包括 Document 与 Name 节点,不计算位置链接。

    Introspection JSON 最多 128 层容器和 100,000 个树节点,包括属性节点和键节点。可达非 __ 命名类型最多 2,000 个,包括构建器加入的标量。嵌入的 defaultValue 按 GraphQL const 语法解析,累计共用 schema token/AST 上限与 64 层嵌套上限。

    最多交付 1,000 条完整诊断,完整报告 UTF-8 最多 1 MiB。多出一条诊断或一个字节都会拒绝,不发布截断报告;两份独立原件合计最多 3 MiB。独立 Worker 自动期限为 10 秒;取消、超时、容量或编码拒绝都没有部分产物。

    屏幕最多预览报告的 4,000 个 Unicode 码点,复制和下载保留完整报告。GraphQL Float 字面量 1e400 和任意自定义 scalar 字面量可能通过标准静态规则;本工具不做运行时数字或自定义标量强制转换。输入只在本浏览器处理。

    操作示例

    示例输入

    query Find{x}
    示例参数
    schemaFormat=sdl;schema:type Query{x:Int}

    示例输出

    schemaValid=true;documentValid=true;diagnostics=0;executed=false

    出现问题时

    按诊断修正 schema 或文档。容量或超时拒绝时,缩小输入后重跑。取消会保留原输入;重新运行使用新 Worker,只有完整报告才会发布。

    常见问题

    通过就表示 mutation 能成功吗?

    表示完整文档通过了此本地 schema 与固定版本的标准静态规则。身份验证、resolver 行为、变量值、自定义标量、服务器扩展和响应有效性仍需在目标 API 环境单独检查。

    为什么 documentValid 为 null?

    Schema 自身未通过语法、结构或类型检查,因此没有对文档运行该 schema 的语义校验。下载完整 schema 诊断、修好 schema 后再检查文档。

    选中的 schema 文件替代哪里?

    只替代第二个 schema 文本框。第一个操作文档仍需提供;实际解析格式由明确选择决定,不由文件名或 MIME 推断。

    文档与延伸阅读

    相关工具