OpenAPI / Swagger 校验器

对 OpenAPI 3.0/3.1 与 Swagger 2.0 文档进行结构校验:必填字段、路径/操作完整性、响应码、$ref 引用解析、operationId 唯一性与组件完整性

关键信息

分类
安全与校验
输入类型
textarea
输出类型
html
样本覆盖
4
支持 API
Yes

概览

OpenAPI / Swagger 校验器是一款专业的 API 规范验证工具,支持对 OpenAPI 3.0/3.1 与 Swagger 2.0 格式的文档进行深度结构校验。它能快速检测必填字段缺失、路径与操作完整性、响应状态码规范、$ref 引用解析、operationId 唯一性以及组件完整性,帮助开发者确保 API 定义的准确性与合规性。

适用场景

  • 在将 API 设计文档导入网关或生成客户端 SDK 前,需要确保其符合 OpenAPI 规范。
  • 团队协作开发中,合并 API 变更分支时,需要校验 Swagger JSON/YAML 的语法与结构。
  • 调试复杂的 $ref 嵌套引用或排查 API 渲染工具(如 Swagger UI)报错时。

工作原理

  • 将 OpenAPI 3.0/3.1 或 Swagger 2.0 格式的 JSON 或 YAML 文本粘贴至输入框中。
  • 校验器解析文档结构,自动检索必填字段、解析 $ref 引用,并检查 operationId 是否唯一。
  • 实时输出校验结果,高亮显示不合规的路径、缺失的组件或错误的响应码配置。

使用场景

API 设计合规性检查:在发布 API 之前,验证必填字段(如 info.title、paths)和响应码是否定义完整。
排查 Swagger UI 渲染失败:当 Swagger UI 无法正常加载文档时,通过校验器快速定位损坏的 $ref 引用或重复的 operationId。
CI/CD 流程前的预校验:在将 API 规范提交到代码仓库前,手动粘贴进行快速结构验证,防止破坏自动化构建流。

用户案例

1. 修复 Swagger UI 渲染空白问题

前端开发工程师
背景原因
团队使用 Swagger 2.0 定义接口,但在更新完一个用户模块的接口后,Swagger UI 页面直接报错且无法渲染。
解决问题
难以在数千行的 JSON 文档中手动找出损坏的 $ref 引用或语法错误。
如何使用
将完整的 Swagger JSON 粘贴到 specInput 输入框中,校验器会自动运行分析。
示例配置
{
  "swagger": "2.0",
  "info": {
    "title": "User API",
    "version": "1.0.0"
  },
  "paths": {
    "/users": {
      "get": {
        "responses": {
          "200": {
            "schema": {
              "$ref": "#/definitions/UserMissing"
            }
          }
        }
      }
    }
  }
}
效果
校验器立即指出 #/definitions/UserMissing 引用未定义,补全该组件后 Swagger UI 恢复正常。

2. 解决 SDK 生成时的 operationId 冲突

后端架构师
背景原因
在使用 OpenAPI Generator 自动生成 TypeScript 客户端 SDK 时,工具因方法名冲突报错中断。
解决问题
需要找出 OpenAPI 3.0 文档中哪些 API 路径使用了重复的 operationId。
如何使用
将 OpenAPI 3.0 YAML 文档粘贴至校验器中进行结构分析。
示例配置
openapi: 3.0.3
info:
  title: Order API
  version: 1.0.0
paths:
  /orders:
    get:
      operationId: getOrders
      responses:
        '200':
          description: OK
  /orders/list:
    get:
      operationId: getOrders
      responses:
        '200':
          description: OK
效果
校验器高亮提示 /orders 和 /orders/list 的 get 操作使用了相同的 operationId: getOrders,修改其中一个后成功生成 SDK。

用 Samples 测试

validation

相关专题

常见问题

这个校验器支持哪些版本的 API 规范?

支持 OpenAPI 3.0、OpenAPI 3.1 以及较旧的 Swagger 2.0 规范。

校验器可以解析外部的 $ref 引用吗?

校验器主要解析文档内部的 $ref 组件引用,确保引用的组件在 components 或 definitions 中真实存在。

为什么我的 YAML 格式文档粘贴后报错?

请确保 YAML 缩进正确。校验器会先解析 YAML 结构,若格式有误会提示具体的语法错误位置。

校验器会检查 operationId 的唯一性吗?

会的,校验器会扫描所有路径下的操作,确保每个 operationId 在整个文档中是唯一的,以避免 SDK 生成冲突。

校验失败时会提供具体的错误位置吗?

是的,校验结果会明确指出出错的路径、字段名称以及具体的规范冲突原因。

API 文档

请求端点

POST /zh/api/tools/openapi-validator

请求参数

参数名 类型 必填 描述
specInput textarea -

响应格式

{
  "result": "
Processed HTML content
", "error": "Error message (optional)", "message": "Notification message (optional)", "metadata": { "key": "value" } }
HTML: HTML

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-openapi-validator": {
      "name": "openapi-validator",
      "description": "对 OpenAPI 3.0/3.1 与 Swagger 2.0 文档进行结构校验:必填字段、路径/操作完整性、响应码、$ref 引用解析、operationId 唯一性与组件完整性",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=openapi-validator",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]