Swagger 2.0 验证器

以 JSON 或 YAML 格式粘贴 Swagger 2.0 定义,检查其是否包含 swagger 版本字段、包含 title 和 version 的 info 对象,以及 paths 对象。路径条目会被检查是否以斜杠开头,以及是否包含非标准操作的键。

如何检查 Swagger 2.0 文件

  1. 1

    复制定义

    从 `swagger: "2.0"` 那一行开始,复制完整的 `swagger.json` 或 `swagger.yaml`。

  2. 2

    粘贴进来

    粘贴到 OpenAPI / Swagger 文档输入框中。

  3. 3

    运行检查

    进入结果步骤,获取错误和警告。

  4. 4

    更新并重新检查

    在你的文件中应用修复,并粘贴新版本,直到报告干净为止。

什么情况下 Swagger 2.0 文件会通过

对于 2.0 文件,只要顶层存在 swagger 键,版本检查即告通过。工具不会验证其值是否为 "2.0",因此不会发现错误的版本号。除版本之外,文件还需要 info.title、info.version 和 paths 对象。

特定于 Swagger 2.0 的字段,例如 host、basePath、schemes、definitions 和 securityDefinitions,不在检查范围内。缺少 host 或 definitions 块损坏,都不会被报告。

实例

{
  "swagger": "2.0",
  "info": { "title": "Shop API", "version": "1.0" },
  "paths": {
    "/products": {
      "get": { "summary": "List products" },
      "x-internal": true
    }
  }
}

version 字段、info 和 paths 都存在,因此没有错误。报告会显示一条警告:

检查结果 类型 原因
Unknown method ‘x-internal’ on /products. 警告 该键既不是标准操作,也不是路径项字段

警告不会阻止文档有效,因此该文档仍会被判定为有效。x-internal 这类厂商扩展键在 Swagger 2.0 中是合法的,你可以保留它。

从 2.0 迁移

如果你计划迁移到 OpenAPI 3.x,可以把转换后的文件粘贴到同一个输入框中,并比较结果。检查方式相同,只是用 openapi 字段代替 swagger 字段。真正的迁移工作请使用完整的转换器和 Linter,因为本工具不会转换 definitions 或 host 设置。

何时快速检查就足够

Swagger 2.0 定义常常在代码仓库中保留多年,并且经常被手动编辑。当你接手一个旧文件、工具无法加载它且你怀疑缺少某个字段,或者合并两个文件后想确认结果中仍有 info 和 paths 部分时,快速的结构检查就很有帮助。若要检查 2.0 的完整规则(包括 definitions 和安全设置),请使用专门的 Linter。

请记住,报告通过只说明结构正确。没有响应的操作、错误的参数类型以及无法解析的引用都不在本检查范围内,因此也应在你的文档或代码生成工具中测试该文件。

常见问题

不要求。它只检查 swagger 或 openapi 字段是否存在,不检查其内容。

不会。只检查版本字段、info 对象、paths 对象以及每个路径下的条目。

可以。文本会先按 JSON 读取,失败后再按 YAML 读取。粘贴时请保持缩进不变。

路径级别的 parameters、summary、description 和 servers 都在可接受键的列表中,因此不会触发未知方法的警告。

相关工具

此工具还提供其他语言版本

使用指南与应用场景