About api-platform-versioning
A Symfony skill for choosing and implementing API Platform versioning strategies. It favors deprecation before parallel versions and covers sunset notices, response headers, documentation, and tests.
Key features
- 01Configure resource and operation deprecation
- 02Add sunset dates and response headers
- 03Use parallel URI versions when needed
- 04Document and test active versions
Use cases
- 01Renaming or removing API fields and operations
- 02Announcing an API removal timeline
- 03Managing breaking representation changes
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill api-platform-versioningAfter installing, type/api-platform-versioningin Claude Code to confirm it loaded.
Bundled filesreference.md
Details
From the project READMEApi Platform Versioning (Symfony)
Use when
- A field, operation, or resource is being renamed or removed and consumers need time to migrate.
- Announcing a removal date to clients with
SunsetandDeprecationheaders. - Deciding between deprecation and parallel
/v1and/v2surfaces. - A breaking representation change that deprecation and groups cannot express.
Default workflow
- Try deprecation first: set
deprecationReasonon the resource, the operation, or#[ApiProperty]. - Add
sunset:with a date, and on v4 addheaderscarryingDeprecation(RFC 9745) and aLinkwithrel="successor-version". - Before v4, emit those headers from a
KernelEvents::RESPONSElistener. - Only if still breaking, expose parallel
uriTemplatevalues (/v1,/v2) with distinct groups, or output DTOs with one provider per version. - Mark the old operation as deprecated in OpenAPI, document the changes per version, and test every active version.
Guardrails
- Prefer deprecation: path versioning is the fallback, not the default.
- Always set a sunset date and keep at most 2 or 3 versions active.
deprecationReasonandsunsetare stable across v3 and v4, but the RFC 9745headersoption is v4-era: verify it on your installed version.- Use groups for minor additive changes rather than a new version.
Progressive disclosure
- Use this file for execution posture and risk controls.
- Open references when deep implementation details are needed.
Output contract
- The deprecation or versioning strategy chosen and why.
- Deprecated elements with their sunset dates and successor links.
- Tests for each active version and for the headers.
References
reference.md
Comments
Markdown supported