Interceptor

NestJS 🟡 Mid

Definition

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.

Termes lies

#core#interview