Interceptor
NestJS 🟡 MidDefinition
Classe implementant NestInterceptor qui enveloppe l'execution du handler via RxJS. Peut transformer la reponse, ajouter du logging ou gerer le cache.
Analogie
Comme un emballeur cadeau : le produit (reponse) passe par lui avant et apres pour etre transforme.
Exemple de code
@Injectable()
export class TransformInterceptor implements NestInterceptor {
intercept(ctx: ExecutionContext, next: CallHandler) {
return next.handle().pipe(
map(data => ({ data, timestamp: Date.now() })),
);
}
}
Cas d'usage
Wrapper toutes les reponses dans un format standard, mesurer le temps de reponse ou implementer du cache.
Anti-pattern
Utiliser un interceptor pour de la validation de donnees au lieu d'un pipe.