HttpInterceptor
Intercepts HttpRequest
or HttpResponse
and handles them.
interface HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>
}
See also
Description
Most interceptors transform the outgoing request before passing it to the
next interceptor in the chain, by calling next.handle(transformedReq)
.
An interceptor may transform the
response event stream as well, by applying additional RxJS operators on the stream
returned by next.handle()
.
More rarely, an interceptor may handle the request entirely,
and compose a new event stream instead of invoking next.handle()
. This is an
acceptable behavior, but keep in mind that further interceptors will be skipped entirely.
It is also rare but valid for an interceptor to return multiple responses on the event stream for a single request.
Methods
|
||||||
Parameters
Returns
|
Usage notes
To use the same instance of HttpInterceptors
for the entire app, import the HttpClientModule
only in your AppModule
, and add the interceptors to the root application injector .
If you import HttpClientModule
multiple times across different modules (for example, in lazy
loading modules), each import creates a new copy of the HttpClientModule
, which overwrites the interceptors
provided in the root module.