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