Versioning

NestJS 🟡 Mid

Définition

Système de versioning d'API intégré supportant URI (/v1/), header, média type et custom. Permet d'évoluer l'API sans casser les clients existants.

Analogie

Comme les éditions 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 déployant de nouvelles versions d'endpoints.

Anti-pattern

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

← → au clavier pour passer d'une fiche à l'autre