该技能面向需要让 API 平滑演进而不破坏客户端的使用场景,给出多种版本管理策略对比与实现方式。
主要能力包括:URL 路径版本(如 /api/v1/users,推荐,简单可见且可缓存)、请求头版本(X-API-Version: 1,URL 干净但较隐蔽)、查询参数版本(?version=1,便于测试但有缓存问题)、内容协商(Accept: application/vnd.api.v1+json,符合 REST 但复杂)。
用法上,资料以 FastAPI 为例:按 v1/v2 目录组织路由,通过 APIRouter 在 /api 前缀下分别挂载 /v1 与 /v2;各版本使用独立 schema,业务逻辑放在与服务无关的 UserService 中共享;请求头或内容协商版本通过依赖注入解析并校验。还提供弃用响应头设置(Deprecation、Sunset、Link rel=successor-version)、版本生命周期(alpha→beta→stable→deprecated,弃用通知至少提前 3 个月、弃用后保留 6 个月)、破坏性与非破坏性变更区分、按版本生成 OpenAPI 文档,以及禁止事项(不版本化内部实现、不加版本直接破坏契约、无通知下线、同时支持过多版本,最多 2-3 个)。
关键决策:策略选 URL 路径;支持当前加前一个版本;破坏性变更发新主版本,增量变更同版本。相关技能有 api-design-framework、error-handling-rfc9457、observability-monitoring。具体平台与收费资料暂未提供。