API Versioning
Architecture 🟡 MidDefinition
Strategies pour faire evoluer une API sans casser les clients existants : URL path (/v1/), header (Accept), query param. Chaque approche a ses tradeoffs.
Analogie
Les editions d'un manuel scolaire : la v1 reste disponible pendant que la v2 est utilisee par les nouveaux etudiants.
Exemple de code
// URL versioning (le plus courant)
app.use('/api/v1/users', usersV1Router);
app.use('/api/v2/users', usersV2Router);
// Header versioning
// Accept: application/vnd.api+json;version=2
Cas d'usage
APIs publiques avec des clients que vous ne controlez pas et qui ne migrent pas en meme temps.
Anti-pattern
Breaking changes sans versioning — les clients en production cassent.