Interceptor
NestJS 🟡 MidDéfinition
Classe implémentant NestInterceptor qui enveloppe l'exécution du handler via RxJS. Peut transformer la réponse, ajouter du logging ou gérer le cache.
Analogie
Comme un emballeur cadeau : le produit (réponse) passe par lui avant et après pour être 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 réponses dans un format standard, mesurer le temps de réponse ou implémenter du cache.
Anti-pattern
Termes liés
En entretien
Quelle différence entre un Interceptor et un Guard ?
Le Guard décide si la requête peut continuer, alors que l'Interceptor enveloppe l'exécution du handler via RxJS pour transformer la réponse, ajouter du logging ou gérer du cache, comme un emballeur cadeau qui transforme le produit avant et après. Le guard bloque en amont, l'interceptor agit autour de l'exécution.
Pourquoi ne pas utiliser un interceptor pour valider des données d'entrée ?
Parce que c'est l'anti-pattern identifié : la validation de données c'est le rôle d'un pipe, pas d'un interceptor. L'interceptor est plutôt fait pour wrapper les réponses dans un format standard ou mesurer un temps de réponse.
Fiche mise à jour le 2026-09-27