关于 api-platform-versioning
面向 Symfony 的技能,用于选择并实施 API Platform 版本策略。它优先采用弃用机制,再考虑并行版本,并涵盖 sunset 通知、响应头、文档和测试。
主要功能
- 01配置资源和操作的弃用信息
- 02添加 sunset 日期和响应头
- 03必要时设置并行 URI 版本
- 04记录文档并测试有效版本
适用场景
- 01重命名或移除 API 字段与操作
- 02公告 API 移除时间表
- 03管理表示形式的破坏性变更
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill api-platform-versioning安装后在 Claude Code 中输入/api-platform-versioning确认已加载。
附带文件reference.md
详细介绍
API 平台版本控制(Symfony)
适用场景
- 字段、操作或资源即将重命名或移除,需要给使用者留出迁移时间。
- 使用
Sunset和Deprecation标头通知客户端移除日期。 - 决定采用弃用方案,还是并行提供
/v1和/v2接口。 - 弃用机制和分组无法表达具有破坏性的表示形式变更。
默认工作流
- 优先尝试弃用:在资源、操作或
#[ApiProperty]上设置deprecationReason。 - 添加带日期的
sunset:,并在 v4 中添加headers,包含Deprecation(RFC 9745)以及带有rel="successor-version"的Link。 - 在 v4 之前,通过
KernelEvents::RESPONSE监听器发送这些标头。 - 只有在仍有破坏性变更时,才使用不同的分组并行公开
uriTemplate值(/v1、/v2),或使用输出 DTO,并为每个版本配置一个提供程序。 - 在 OpenAPI 中将旧操作标记为已弃用,按版本记录变更,并测试每个仍在使用的版本。
注意事项
- 优先采用弃用方案:路径版本控制是备用方案,而非默认选择。
- 始终设置日落日期,并且最多同时保留 2 或 3 个活跃版本。
deprecationReason和sunset在 v3 和 v4 中均稳定可用,但 RFC 9745 的headers选项属于 v4 时代的功能:请确认其适用于你安装的版本。- 对于次要的增量变更,使用分组,而不是创建新版本。
渐进式展开
- 使用此文件了解执行方式和风险控制。
- 需要深入了解实现细节时,打开参考资料。
输出约定
- 选择的弃用或版本控制策略及其原因。
- 已弃用的元素及其日落日期和后续版本链接。
- 针对每个活跃版本以及相关标头的测试。
参考资料
reference.md
评论
支持 Markdown