API Contract Validator 是一个专注于 API 契约验证的 QA 技能,目标是在 API 提供方与消费方之间建立可执行的契约校验机制,防止破坏性变更影响下游消费者。
用途
该技能用于编写、审查或规划 API 契约测试,系统性地验证 API 响应是否符合已发布的规范,检查跨版本向后兼容性是否得到保持,并确认消费者预期始终被满足。它适用于需要以 OpenAPI/Swagger、JSON Schema 或消费者驱动契约作为验证依据的场景。
主要能力
- 依据 OpenAPI 规范校验 API 响应,包括状态码、响应头、内容类型和响应体。
- 依据 JSON Schema 定义校验数据结构,包括必填字段、字段类型、字符串格式约束等。
- 支持消费者驱动契约测试,示例中包含 Pact provider 验证相关文件。
- 支持 GraphQL schema 验证与破坏性变更检测。
- 提供向后兼容性检查,可检测已移除属性、字段类型变更、新增必填字段、枚举值移除等破坏性变更。
- 验证分页响应结构、错误响应格式以及空集合等边界情况。
使用方式
技能以项目结构形式组织测试代码,示例目录包括 tests/contracts/openapi、json-schema、consumer-driven、graphql,以及 fixtures、specs 等。配置部分展示了如何使用 js-yaml 加载 OpenAPI 规范、使用 Ajv 与 ajv-formats 编译并校验 JSON Schema、通过 getResponseSchema 从规范中提取响应 schema。示例测试使用 Playwright 的 test 与 expect 编写,覆盖 GET/POST 端点响应校验、错误响应校验、内容类型校验、分页结构校验,以及遍历所有已文档化 GET 端点进行一致性检查。核心原则要求契约校验必须在 CI 中每次提交时运行,以尽早发现契约漂移。
适用场景
适用于 API 提供方与消费方需要共享契约的团队,特别是多团队并行开发、需要以 schema 优先方式定义接口、或需要确保新版本不破坏现有消费者的项目。也可用于 GraphQL API 的破坏性变更检测。
限制
资料未提供该技能的具体安装命令、官方托管方式、收费模式或平台支持范围。部分代码示例在资料中被截断,未完整展示。未提供实际运行环境要求或依赖版本约束等细节。