无需登录 数据私有 本地保存

OpenAPI/YAML 规范校验器 - 实时检查与错误提示

74
0
0
0
术语 定义 与工具的关系
OpenAPI 规范 一种用于描述 RESTful API 的标准化规范格式,定义了 API 的接口路径、请求方法、参数、响应结构、认证方式等信息。最初由 Swagger 项目发起,后捐赠给 OpenAPI Initiative 组织,更名为 OpenAPI Specification。当前主流版本为 3.0.x 和 3.1.x。 本工具的核心校验对象,支持对 OpenAPI 3.0、3.1 和 Swagger 2.0 版本的规范文件进行语法和结构校验。
Swagger 2.0 OpenAPI 规范的前身版本,于 2015 年捐赠给 OpenAPI Initiative 后更名为 OpenAPI 2.0,但社区中仍习惯称为 Swagger 2.0。其结构与 OpenAPI 3.x 存在显著差异,例如使用 swagger 字段而非 openapi 字段标识版本,paths 结构和 schema 定义也有所不同。 本工具支持 Swagger 2.0 规范的校验,您可以直接粘贴 Swagger 2.0 格式的 YAML 文件,工具会自动识别版本并应用对应的校验规则。
YAML YAML Ain't Markup Language,一种人类可读的数据序列化格式,使用缩进和换行来表示数据结构,广泛用于配置文件和 API 规范定义。YAML 对缩进非常敏感,空格数量的差异会导致完全不同的解析结果,是 YAML 文件中最常见的错误来源。 OpenAPI 规范文件通常以 YAML 格式编写,本工具的 YAML 语法校验功能可以检测缩进错误、格式问题等 YAML 层面的语法错误。
API 路径(Paths) OpenAPI 规范中定义 API 端点的核心部分,每个路径对应一个或多个 HTTP 方法(GET、POST、PUT、DELETE 等),描述了客户端可以调用的 API 接口。例如 /pets 表示宠物资源的访问路径。 工具会在统计面板中显示当前规范文件中定义的 API 路径数量,帮助您快速了解 API 的规模。路径定义错误(如重复路径、非法路径格式)也会被校验引擎捕获。
Schema(模式) OpenAPI 规范中用于描述数据结构的定义块,位于 components/schemas(OpenAPI 3.x)或 definitions(Swagger 2.0)下。Schema 定义了请求体和响应体的数据类型、必填字段、属性约束等信息,是 API 数据契约的核心载体。 校验引擎会检查 Schema 定义的完整性,包括必填字段是否声明、数据类型是否有效、引用路径是否指向存在的 Schema 等。
$ref 引用 OpenAPI 规范中用于复用定义的机制,通过 $ref 字段指向规范文件内其他位置的定义。例如 $ref: '#/components/schemas/Pet' 表示引用 components/schemas 下的 Pet 定义。引用机制避免了重复定义,提高了规范文件的可维护性。 工具会校验所有 $ref 引用路径的有效性,如果引用指向了不存在的定义,会报告错误并给出具体行号,帮助您快速定位引用断裂的位置。
实时校验 一种无需手动触发的自动校验机制,当用户在编辑器中修改内容时,系统在后台自动运行校验逻辑并实时更新结果。相比传统的"保存后校验"或"点击按钮校验"模式,实时校验提供了更即时的反馈体验。 本工具采用实时校验机制,每次编辑器内容变化后自动触发校验,无需手动操作即可获得最新的校验结果。
错误与警告 校验结果分为两个级别:错误(Error)表示规范文件存在违反 OpenAPI 规范的结构性问题,必须修复才能被解析器正确处理;警告(Warning)表示规范文件存在潜在的改进建议或非致命性问题,不影响基本解析但可能导致某些工具的兼容性问题。 工具在统计面板中分别显示错误和警告的数量,问题列表中每条条目也标注了对应的级别,帮助您区分需要立即修复的问题和可以后续优化的建议。
格式化 对 YAML 代码进行自动排版的过程,包括统一缩进风格、对齐冒号、移除多余空行等操作,使代码结构更加清晰、风格更加一致。格式化不影响 YAML 的语义,但会移除无法被解析器保留的注释内容。 本工具提供一键格式化功能,可以将凌乱的 YAML 代码按照标准规则重新排列,提升代码的可读性和团队协作效率。
Petstore 示例 OpenAPI 官方维护的示例规范,描述了一个宠物商店 API 的完整接口定义,包括宠物的增删改查、用户认证等功能。Petstore 是学习 OpenAPI 规范最经典的参考案例,被广泛用于规范文档、教程和工具演示中。 本工具内置了 Petstore(OpenAPI 3.0)示例,您可以通过点击"示例 Petstore(3.0)"按钮一键加载,作为编写规范的参考模板。