--- name: api-versioning-strategy description: API versioning strategies for GoodGo microservices including semantic versioning, backward compatibility patterns, API deprecation, version negotiation, and breaking changes handling. --- # API Versioning Strategy ## When to Use This Skill Use this skill when: - Versioning APIs - Handling breaking changes - Implementing API deprecation - Maintaining backward compatibility - Implementing version negotiation ## Key Patterns ### URL Path Versioning ```typescript // Version routes router.use('/v1', v1Router); router.use('/v2', v2Router); ``` ### Header-Based Versioning ```typescript // Version negotiation const acceptHeader = req.headers.accept; const version = acceptHeader.match(/application\/vnd\.goodgo\.v(\d+)\+json/)[1]; ``` ### Deprecation ```typescript // Deprecation headers res.setHeader('Deprecation', 'true'); res.setHeader('Sunset', '2024-12-31'); res.setHeader('Warning', 'API version 1 is deprecated'); ``` ## Best Practices 1. Choose versioning strategy and be consistent 2. Use semantic versioning (MAJOR.MINOR.PATCH) 3. Always deprecate before removing 4. Provide migration guides 5. Maintain backward compatibility when possible ## Resources - [API Design](./api-design.md) - Skill Source: `.cursor/skills/api-versioning-strategy/SKILL.md`