Implements API versioning via URL paths, headers, or query params with backward compatibility, deprecation headers, migration paths, and OpenAPI-based breaking change detection.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin api-versioning-managerThis skill is limited to using the following tools:
Implement API versioning strategies -- URL path (`/v1/`, `/v2/`), header-based (`Accept: application/vnd.api.v2+json`), or query parameter (`?version=2`) -- with backward compatibility layers, deprecation notices, and automated migration paths. Manage concurrent version support, sunset timelines, and breaking change detection across the API surface.
Implements API versioning strategies including URL/header versioning, backward compatibility, deprecation, and migration guides for REST, GraphQL, gRPC. Use when managing API versions or breaking changes.
Guides API versioning strategies including URL path, header, query parameter, and content negotiation. Helps manage breaking changes, deprecations, and multiple versions.
Implements API versioning using URL paths, headers, or query parameters with deprecation timelines, backward compatibility, and migration strategies. Use for managing multiple versions or planning breaking changes.
Share bugs, ideas, or general feedback.
Implement API versioning strategies -- URL path (/v1/, /v2/), header-based (Accept: application/vnd.api.v2+json), or query parameter (?version=2) -- with backward compatibility layers, deprecation notices, and automated migration paths. Manage concurrent version support, sunset timelines, and breaking change detection across the API surface.
/v1/controllers/, /v2/controllers/) with shared business logic extracted into version-independent service layers.Deprecation: true, Sunset: <date>, and Link: <migration-guide-url>; rel="sunset" per the Sunset HTTP header RFC.See ${CLAUDE_SKILL_DIR}/references/implementation.md for the full implementation guide.
${CLAUDE_SKILL_DIR}/src/routes/v1/ - Version 1 route definitions${CLAUDE_SKILL_DIR}/src/routes/v2/ - Version 2 route definitions${CLAUDE_SKILL_DIR}/src/middleware/version-router.js - Version extraction and routing middleware${CLAUDE_SKILL_DIR}/src/compatibility/ - Request/response transformation layers between versions${CLAUDE_SKILL_DIR}/src/utils/breaking-change-detector.js - OpenAPI diff tool for breaking changes${CLAUDE_SKILL_DIR}/docs/migration-guide-v1-to-v2.md - Consumer migration documentation| Error | Cause | Solution |
|---|---|---|
| 400 Unsupported Version | Client requests a version that does not exist | Return available versions list in error body; suggest closest valid version |
| 410 Gone | Client requests a sunset version past its end-of-life date | Return migration guide URL and recommended current version in error body |
| Compatibility layer failure | v1-to-v2 transform encounters a field with no mapping | Log unmapped fields; return partial response with warning header; alert API team |
| Version header ignored | Client sets version header but reverse proxy strips custom headers | Document required proxy configuration; add URL path fallback for header-based versioning |
| Breaking change undetected | Semantic change (same field name, different meaning) not caught by schema diff | Add contract tests with business-logic assertions beyond schema structure |
Refer to ${CLAUDE_SKILL_DIR}/references/errors.md for comprehensive error patterns.
URL path versioning: Migrate from /api/users to /api/v1/users and /api/v2/users where v2 changes name (string) to firstName/lastName (object), with v1 compatibility layer that joins the fields.
Header-based versioning: Route requests using Accept: application/vnd.myapi.v2+json with a default version fallback for clients omitting the header, and version discovery via OPTIONS responses.
Sunset lifecycle management: Announce v1 deprecation with 6-month sunset timeline, add Sunset headers immediately, log v1 usage metrics to track migration progress, and auto-disable after sunset date.
See ${CLAUDE_SKILL_DIR}/references/examples.md for additional examples.