Versioning

NestJS 🟡 Mid

Definition

Systeme de versioning d'API integre supportant URI (/v1/), header, media type et custom. Permet d'evoluer l'API sans casser les clients existants.

Analogie

Comme les editions d'un livre : la v2 existe mais la v1 reste disponible pour ceux qui l'utilisent.

Exemple de code

app.enableVersioning({ type: VersioningType.URI });

@Controller({ path: 'users', version: '1' })
export class UserV1Controller {}

@Controller({ path: 'users', version: '2' })
export class UserV2Controller {}

Cas d'usage

Maintenir la retrocompatibilite tout en deployant de nouvelles versions d'endpoints.

Anti-pattern

Modifier les endpoints existants sans versioning, cassant les clients en production.
#core