OpenAPI 验证器
检查 OpenAPI 3.0/3.1 YAML/JSON 语法及指定本地结构
本地检查 3.0/3.1 版本、info、paths/webhooks 及直接操作的 responses;不验证 Schema、参数匹配、安全配置、回调或任何引用目标。限制 2 MiB、100 层、100,000 节点;最多显示 100 个问题。
语法和结构问题会显示在这里。
工具说明
OpenAPI 验证器对 OpenAPI 3.0.x 和 3.1.x 的 YAML 或 JSON 进行有限的本地检查,覆盖语法、字符串映射键、版本与 info 类型、路径和操作对象结构,以及直接声明的响应码和描述。两个版本的规则不同:3.0 必须提供 paths 和操作的 responses;3.1 可仅提供 components 或 webhooks,也不强制每个操作都含 responses。YAML 语法问题显示源行列,结构问题使用正确转义的 JSON Pointer 路径。工具不验证 Schema、参数匹配、安全方案、回调、厂商规则或任何本地/远程引用目标;本地检查通过不等于完整规范一致性通过。输入仅停留在当前页面,不保存草稿,也不请求接口。限制为 2 MiB、100 层嵌套、100,000 个访问节点、受限 YAML 别名展开,最多显示 100 个问题。
场景配方
检查仅包含 components 的 OpenAPI 3.1 文档
目标:在完整契约评审前识别规范版本造成的误报
- 粘贴 {"openapi":"3.1.0","info":{"title":"Shared models","version":"1.0"},"components":{}} 并执行本地检查。
- 3.1 允许 components 不配 paths,因此列明检查通过;把版本改为 3.0.3 后重查,会显示缺少 paths。
- 恢复目标版本,再由 CI 验证器检查 Schema 定义及引用目标。
结果:获得区分版本的本地报告,并明确哪些契约部分尚未验证。
常见问题
支持哪些 OpenAPI 版本?
有限结构检查接受 3.0.x 和 3.1.x 版本字符串。OpenAPI 2.0 和 3.2 不在本工具检查范围内。
为什么 3.1 文档可以省略 paths 或操作的 responses?
OpenAPI 3.1 至少需要 paths、components 或 webhooks 之一,其操作 responses 字段可省略;3.0 则必须提供 paths 和操作 responses。无论版本,只要存在 responses 对象,就至少需要一个响应。
通过检查代表整个 API 契约都有效吗?
不代表。检查仅覆盖列明的表层结构,不验证 Schema、参数与路径匹配、安全配置、回调、语义关联或本地/外部引用目标。CI 中仍应使用识别规范版本的完整验证器。
为什么 YAML 响应码必须加引号?
OpenAPI 映射使用字符串键,请写成 "200":,不要使用 YAML 数字键。重复键、未支持标签、递归别名和过量别名展开会报错,不会静默规范化。
错误位置和路径代表什么?
解析问题尽可能显示源行列;结构问题使用 JSON Pointer 转义,例如路径键 /orders 会写成 ~1orders。最多展示 100 个问题,发现更多时会明确提示。
文档会上传、请求接口或保存吗?
不会。粘贴内容和选中文件均在本地检查,不保存草稿,不请求接口或引用 URL。编辑输入、替换文件和清空都会使旧报告失效。
继续浏览