用途:面向微服务与 API 的消费者驱动契约测试,覆盖 Pact 契约定义与提供者验证、schema 校验、API 版本管理与向后兼容性测试,目标是在部署前发现破坏性变更。
主要能力:消费者定义期望的请求/响应契约;提供者验证是否满足全部消费者契约;CI/CD 集成阻止破坏契约的部署;按语义化版本管理(破坏性=主版本升级);维护受支持版本间的向后兼容;识别破坏性变更并给出 semver 建议。常见破坏性变更包括删除字段、重命名字段、变更字段类型(均为主版本),非破坏性包括新增可选字段、新增端点(次版本)与缺陷修复(补丁)。
工具与用法:Pact 用于消费者驱动契约;OpenAPI/Swagger 用于 API 优先设计;JSON Schema 用于 schema 校验;GraphQL 用于 schema 优先契约。Pact 侧使用 @pact-foundation/pact 的 Pact 定义交互与期望响应,使用 Verifier 执行提供者验证并配置 stateHandlers;通过 pact-broker publish 发布契约,can-i-deploy 判断是否可部署;CI 示例中先跑消费端契约测试,再验证提供者。
适用场景:微服务通信、第三方 API 集成、分布式团队协作、防止破坏性变更。
限制与说明:上述为技能文档描述内容,未提供安装命令、价格、平台支持与效果数据;具体实战需结合项目环境验证。