Versioning
NestJS 🟡 MidDé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.