REST API 变更跟踪器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/rest-api-changelog-tracker 技能到 AI 助手。
技能介绍
问题:版本演进中的隐性破坏
当API从v1升级到v2时,即使方法名看似兼容,也可能因字段类型变更或新增必填参数导致客户端异常。手动对比规范文档不仅耗时,还容易遗漏关键变化。团队常面临两类痛点:破坏性变更无感知(客户端上线后突然崩溃)和端点弃用追踪难(依赖过期接口的服务无法及时迁移)。
核心能力与实现步骤
该技能通过自动化流程解决上述问题,核心逻辑如下:
- 规范解析与差异对比:基于
OpenAPI Specification解析接口定义,利用oasdiff工具对比相邻版本规范,识别路径、参数、请求/响应结构的破坏性修改(如required字段新增、enum值删除)。 - 弃用头监控:自动检测接口返回头中的
Deprecation和Sunset字段(如Deprecation: @1650000000),标记即将下线的端点并记录迁移截止时间。 - 历史持久化:使用
better-sqlite3将版本差异、弃用警告和变更时间线存入本地数据库,支持通过SQL查询回溯任意版本的接口差异。
适用边界与注意事项
- 依赖有效的OpenAPI规范文件(支持3.0+版本),若团队使用其他规范格式需先转换为兼容格式。
- 破坏性变更的判定依赖
oasdiff的默认规则,复杂场景(如语义兼容性)需人工复核。 - 数据迁移前需确认SQLite数据库路径可写,避免因权限问题导致历史记录丢失。
- 适用于REST API,对GraphQL或gRPC等协议暂不支持。
使用场景
- 维护REST服务时对比新旧OpenAPI规范,生成破坏性变更报告给客户端团队
- 监控线上API响应的弃用头,提前通知依赖方在截止日期前迁移到新端点
- 为多版本接口建立SQLite版本历史库,支持按时间查询接口字段的变更记录
- 上线新API版本前运行差异检查,确认无强制删除字段导致旧客户端异常
适合人员
- 后端API开发者,需要在版本迭代时验证接口兼容性避免线上故障
- 技术文档工程师,需要基于规范差异生成准确的变更日志和迁移指南
- 平台架构师,负责监控第三方服务的端点弃用风险并推动客户端迁移