TransformInterceptor pentru Răspunsuri Unificate în NestJS

pipeline NestJS 10.x / RxJS Q&A / Distribuie cod

Împachetarea automată a tuturor răspunsurilor JSON într-un format enterprise standardizat cu metadate comune prin operatorul RxJS map().

Sintaxă
next.handle().pipe(map(data => ({ data, statusCode, timestamp })))

Pentru a menține o structură previzibilă a răspunsurilor API consumate de frontend, este o practică recomandată ca toate datele să fie împachetate într-o anvelopă comună: { data: [...], statusCode: 200, timestamp: "..." }.

Folosind un TransformInterceptor și operatorul RxJS map(), poți transforma automat rezultatul returnat de orice controller fără a modifica manual codul fiecărui endpoint.

Exemplu: TransformInterceptor pentru împachetare standardizată
import { Injectable, NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

export interface StandardResponse {
  data: T;
  statusCode: number;
  timestamp: string;
}

@Injectable()
export class TransformInterceptor implements NestInterceptor> {
  intercept(context: ExecutionContext, next: CallHandler): Observable> {
    const ctx = context.switchToHttp();
    const response = ctx.getResponse();

    return next.handle().pipe(
      map((data) => ({
        data,
        statusCode: response.statusCode,
        timestamp: new Date().toISOString(),
      })),
    );
  }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: TransformInterceptor pentru Răspunsuri Unificate

Ai o nelămurire despre utilizarea comenzii TransformInterceptor pentru Răspunsuri Unificate sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.