Interceptors
Los interceptors en Angular nos brindan un mecanismo para interceptar y/o mutar las solicitudes y respuestas http.
Http Basic
Lo que aprender谩s para consumir API con Angular
Solicitudes GET
Detalle de producto
Implementando slides
Solicitudes POST
Solicitudes PUT y PATCH
Solicitudes DELETE
Url Parameters / Paginaci贸n
Observable vs. Promesa
Reintentar una petici贸n
Buenas pr谩cticas
El problema de CORS
Manejo de ambientes
Manejo de errores
Transformar peticiones
Evitando el callback hell
Auth
Login y manejo de Auth
Manejo de headers
Uso de interceptores
Enviar Token con un interceptor
Creando un contexto a interceptor
Archivos
Descarga de archivos con Http
Subida de archivos con Http
Despedida
Contin煤a con el Curso de Angular Router y Programaci贸n Modular
No tienes acceso a esta clase
隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera
Nicolas Molina
Los Interceptores de Angular llegan para facilitar la manipulaci贸n de las peticiones que tu aplicaci贸n realiza.
Un interceptor, como su nombre indica, interceptar谩 las solicitudes HTTP antes de que se env铆en al servidor, para agregar informaci贸n a las request, manipular datos, entre otras utilidades.
Con el CLI de Angular, puedes crear un interceptor con el comando ng generate interceptor <interceptro_name>
. En este ejemplo, generaremos un interceptor para manipular los errores HTTP en toda tu aplicaci贸n.
// interceptors/errors.interceptor.ts
import { Injectable } from '@angular/core';
import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class ErrorsInterceptor implements HttpInterceptor {
constructor() {}
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
return next.handle(request)
);
}
}
Lo interceptores son muy similares a los Servicios, pero se inyectan en el m贸dulo de tu app de una forma diferente.
// app.module.ts
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { ErrorsInterceptor } from './interceptors/errors.interceptor';
@NgModule({
// ...
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: ErrorsInterceptor
}
]
})
export class AppModule { }
Importando primeramente HTTP_INTERCEPTORS
desde @angular/common/http
, puedes importar tu propio interceptor. Ahora, todas las solicitudes que salgan de tu aplicaci贸n, se interceptar谩n por el mismo.
Un buen uso para los interceptores es el manejo de errores. Como casi todo en Angular utiliza Observables, los interceptores no son la excepci贸n y puedes apoyarte de RxJS para manipular la emisi贸n de los datos del observable.
// interceptors/errors.interceptor.ts
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
return next.handle(request)
.pipe(
catchError((error: HttpErrorResponse) => {
if (error.status === 401)
return throwError('No posee permisos suficientes.');
else if (error.status === 403)
return throwError('Acceso prohibido.');
else if (error.status === 404)
return throwError('Registro no encontrado.');
else
return throwError('Ha ocurrido un error inesperado.');
}),
);
}
Implementa esta l贸gica para identificar el tipo de respuesta del backend y realizar una u otra acci贸n dependiendo el error.
Contribuci贸n creada por: Kevin Fiorentino.
Aportes 5
Preguntas 5
Los interceptors en Angular nos brindan un mecanismo para interceptar y/o mutar las solicitudes y respuestas http.
modifique mi pipe con el tap y va de lujo
.pipe(
tap(token => {
this.token_access = token.access_token;
}),
switchMap ((token) =>{
return this.authService.profile(token.access_token);
})
Crear interceptor -->
ng g interceptor interceptors/time --flat
Los interceptores y los middleware es lo mismo ?
驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?