api-versioning-strategy

v2026.09.24

Implements API versioning using URL paths, headers, or query parameters with backward compatibility and deprecation strategies. Use when managing multiple API versions, planning breaking changes, or designing migration paths.

GitHub
Install command
npx skhub add secondsky/api-versioning-strategy
Markdown
SKILL.md

API Versioning Strategy

Choose and implement API versioning approaches with proper deprecation timelines.

Versioning Methods

MethodExampleProsCons
URL Path/api/v1/usersClear, cache-friendlyURL clutter
HeaderAPI-Version: 1Clean URLsHidden, harder to test
Query?version=1Easy to useNot RESTful

URL Path Versioning (Recommended)

const v1Router = require('./routes/v1');
const v2Router = require('./routes/v2');

app.use('/api/v1', v1Router);
app.use('/api/v2', v2Router);

Version Adapter Pattern

// Transform between versions
const v1ToV2 = (v1Response) => ({
  data: {
    type: 'user',
    id: v1Response.user_id,
    attributes: {
      name: v1Response.user_name,
      email: v1Response.email
    }
  }
});

Deprecation Headers

app.use('/api/v1', (req, res, next) => {
  res.setHeader('Deprecation', 'true');
  res.setHeader('Sunset', 'Sat, 01 Jun 2025 00:00:00 GMT');
  res.setHeader('Link', '</api/v2>; rel="successor-version"');
  next();
});

Safe vs Breaking Changes

Safe Changes (no version bump):

  • Adding optional fields
  • Adding new endpoints
  • Adding optional parameters

Breaking Changes (requires new version):

  • Removing fields
  • Changing field types
  • Restructuring responses
  • Removing endpoints

Deprecation Timeline

PhaseDurationActions
Deprecated3 monthsAdd headers, docs
Sunset Announced3 monthsEmail users
Read-Only1 monthDisable writes
Shutdown-Return 410 Gone

Best Practices

  • Support N-1 versions minimum
  • Provide 6+ months migration window
  • Include migration guides with code examples
  • Monitor version usage to inform deprecation
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

plugins/api-versioning-strategy/skills/api-versioning-strategy

Default branch

main

Latest commit

a0994f7

Tree SHA

6c0d7e0