Estoy tratando de modificar el encabezado de respuesta o una solicitud de API que proviene de mi aplicación angular. Lo que hice es crear un interceptor RequestTracker que extiende HttpInterceptor y agrega Correlation-Id al encabezado de solicitud. Lo que quiero es que el mismo Id. de correlación forme parte del encabezado de respuesta. Probé el interceptor a continuación, pero no funciona para mí. ¿Hay algo que me estoy perdiendo?
import * as uuid from 'uuid'; import { HttpEvent, HttpHandler, HttpHeaders, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http'; import { filter, map } from 'rxjs/operators'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; @Injectable() export class RequestTracker implements HttpInterceptor { intercept( httpRequest: HttpRequest<any>, next: HttpHandler ): Observable<HttpEvent<any>> { const correlationId = uuid.v4(); const httpRequestClone = httpRequest.clone({ setHeaders: { 'Correlation-Id': correlationId } }); return next.handle(httpRequestClone).pipe( filter((response) => response instanceof HttpResponse), map((response: HttpResponse<any>) => { const modifiedResponse = response.clone({ headers: response.headers.set('Correlation-Id', correlationId) }); return modifiedResponse; }) ); } }En los encabezados de solicitud, el Id. de correlación se agrega, pero no en los encabezados de respuesta.
La respuesta que ha publicado es de la pestaña de red y se refiere a la respuesta enviada desde el servidor. Está adjuntando el encabezado una vez que Angular comienza a procesar esa respuesta. Por lo tanto, no se mostrará en la pestaña de red. Intente registrar la respuesta dentro del código. Y correlationId será parte del encabezado de respuesta.