Skip to content
Development
Skill

/api-versioning-patterns

API versioning strategies, breaking change detection, deprecation lifecycle, and migration guides

From plugin
vibecosystem
532200 skills138 agents7 hooks
Install
$ npx -y skills add vibeeval/vibecosystem --skill api-versioning-patterns --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/api-versioning-patterns

Context preview

The summary Claude sees to decide when to auto-load this skill.

API versioning strategies, breaking change detection, deprecation lifecycle, and migration guides

SKILL.md

api-versioning-patterns.SKILL.md
name: api-versioning-patterns
description: API versioning strategies, breaking change detection, deprecation lifecycle, and migration guides

API Versioning Patterns

Versioning Strategies

| Strateji | Örnek | Pros | Cons | |----------|-------|------|------| | URL Path | `/v1/users` | Açık, cache-friendly | URL kirliliği | | Header | `Accept: application/vnd.api+json;v=2` | Clean URL | Debug zor | | Query Param | `/users?version=2` | Basit | Cache sorunlu | | Content Negotiation | `Accept: application/vnd.company.v2+json` | RESTful | Karmaşık |

**Öneri:** URL Path (`/v1/`) — en yaygın, en anlaşılır.

Breaking Change Detection

// Breaking changes
const breakingChanges = [
  'Required field ekleme',
  'Field silme veya rename',
  'Type değiştirme (string → number)',
  'Enum value silme',
  'Response structure değiştirme',
  'Error code değiştirme',
  'Auth requirement ekleme'
]

// Non-breaking changes
const nonBreaking = [
  'Optional field ekleme',
  'Yeni endpoint ekleme',
  'Enum value ekleme',
  'Response'a optional field ekleme',
  'Performance improvement'
]

Deprecation Lifecycle

Phase 1: ANNOUNCE (3 ay önce)
  → Deprecation header: Sunset: Sat, 01 Jan 2027 00:00:00 GMT
  → API docs'ta uyarı
  → Consumer'lara email

Phase 2: WARN (2 ay önce)
  → Response header: Deprecation: true
  → Log: deprecated endpoint kullanımı
  → Dashboard: kullanım metrikleri

Phase 3: THROTTLE (1 ay önce)
  → Rate limit düşür
  → Warning response body'ye ekle

Phase 4: SUNSET
  → 410 Gone döndür
  → Migration guide link'i ile

Migration Guide Template

# Migration: v1 → v2

## Breaking Changes
1. `GET /v1/users` → `GET /v2/users`
   - Response: `{ data: User[] }` → `{ items: User[], meta: {...} }`
2. `POST /v1/orders`
   - New required field: `currency` (ISO 4217)

## Step-by-Step
1. Update client SDK to v2
2. Add `currency` field to order creation
3. Update response parsing for `items` + `meta`
4. Test against v2 staging
5. Switch production to v2

## Compatibility Period
v1 available until: 2027-06-01

Checklist

  • [ ] Versioning stratejisi seçilmiş
  • [ ] Breaking change policy documented
  • [ ] Deprecation lifecycle tanımlı
  • [ ] Sunset header ekleniyor
  • [ ] Migration guide var
  • [ ] Version usage metrikleri tracked
  • [ ] Consumer notification sistemi var
  • [ ] Minimum 6 ay backward compatibility

Anti-Patterns

  • Version'sız API (her değişiklik breaking)
  • Eski version'u ani kapatma (sunset lifecycle uygula)
  • Breaking change without version bump
  • Her küçük değişiklikte yeni version
  • Consumer'lara haber vermeden deprecate
Read more
Ships withvibecosystem

Your AI software team. Built on Claude Code. vibecosystem turns Claude Code into a full AI software team — 138 specialized agents that plan, build, review, test, and learn from every mistake. No configuration needed — just install and code.

Get the whole plugin

Other skills on vibecosystem.