Modifying and Forwarding HTTP Requests for Different Environments in Angular
Modifying and Forwarding HTTP Requests for Different Environments in Angular:
Interceptor:
This example demonstrates how to modify HTTP requests globally based on the environment. The key concepts covered here are Request Interception, Cloning the Request, and Forwarding the Request.
Request Interception:
Modify the request before it is sent to the server.
Cloning the Request:
Since HTTP requests are immutable, the clone() method is used to create a modified copy of the original request.
Forwarding the Request:
The modified request is forwarded to the next handler in the chain using next.handle(updateRequest).
Example:
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { environment } from '../../environments/environment';
@Injectable({
providedIn: 'root'
})
export class HttpInterceptorService implements HttpInterceptor {
constructor() { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let updateRequest = req;
if (environment.production) {
updateRequest = req.clone({
url: req.url.replace('http://localhost', 'https://api.production.com')
});
} else if (environment.testing) {
updateRequest = req.clone({
url: req.url.replace('http://localhost', 'https://api.testing.com')
});
}
return next.handle(updateRequest);
}
}
Comments
Post a Comment