API Versioning

Architecture 🟡 Mid

Definition

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.

Termes lies

#architecture#interview#api#best-practice