SuperAPI AI 工具集

version-api

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

该技能用于为 Rails REST API 实现版本化策略,适用于需要维护 v1/v2 等公开版本、管理弃用与退场的场景。

主要能力:提供路由命名空间、控制器继承、弃用响应头与向后兼容测试的组织方式。相关文件包括 config/routes.rb 中的路由命名空间、app/controllers/concerns/api_versioning.rb 的请求头版本化、app/controllers/concerns/deprecatable.rb 的弃用头,以及 spec/requests/api/backward_compatibility_spec.rb 的兼容性测试。

使用方式:先选择策略,公开 API 用 URL 路径(/api/v1/),内部 API 可用 Accept 头;在 config/routes.rb 中用 namespace 包裹不同版本资源;新版本控制器可继承上一版本控制器并只覆盖变化动作;旧版本控制器 include Deprecatable 以发出 Sunset 与 Deprecation 头;合并前运行 bundle exec rspec spec/requests/api/backward_compatibility_spec.rb 确认无回归;并记录退场日期与迁移指南。

限制与安全要求:版本解析必须使用固定白名单(V1、V2 等),禁止对调用方提供的版本字符串做 constantize、eval 或动态分发;不得未经弃用期直接移除端点;版本只能放在 URL 路径或 Accept 头,不能放在请求体中;至少保持一个主版本的向后兼容。输出语言除非明确要求,否则须为英文。可选加载 EXAMPLES.md、references/strategies.md 与 references/workflow.md,分别用于完整示例、策略对比与弃用沟通流程。原技能可与 generate-api-collection、test-engine 等技能串联。