Volver al blog

Gestión de solicitudes HTTP y manejo de errores con interceptores de Angular

Gestión de solicitudes HTTP y manejo de errores con interceptores de Angular

Si has estado desarrollando una aplicación usando AngularJS, probablemente conozcas los interceptores HTTP. Sin embargo, estos interceptores HTTP no estuvieron disponibles en Angular hasta la versión 4.3. En este tutorial, utilizaremos interceptores en Angular para manejar peticiones y respuestas HTTP, y procesar errores.

Requisitos previos

Angular las aplicaciones utilizan el entorno de ejecución de Node.js. Para completar este tutorial, necesitarás tener Node.js instalado en tu máquina. Afortunadamente, Node.js es bastante fácil de instalar. Tenemos una guía completa sobre Cómo instalar Node.js en Ubuntu 18.04 aquí.

Además, te resultará beneficioso conocer Angular y estar familiarizado con el uso de Angular CLI para construir aplicaciones Angular. Utilizaremos Node v8.12.0 y npm v6.4.1.

Paso 1: Crear la aplicación Angular

Para empezar, vamos a crear una nueva aplicación Angular utilizando Angular CLI. Nombraremos a nuestra aplicación Angular-Interceptor. Ejecuta el siguiente comando para crear la aplicación:

Se te pedirán algunas opciones. Introduce los valores por defecto y continúa:

ang cli Angular Interceptors

A continuación, navega al directorio de la aplicación y ejecuta el siguiente comando para iniciar la aplicación:

ng serve Angular Interceptors

Luego, visualiza http://localhost:4200 en tu navegador para ver la aplicación. Ya has configurado una aplicación Angular básica.

Paso 2: Dar estilo a la aplicación Angular

Aquí daremos estilo a nuestra aplicación Angular utilizando Angular Material. Para instalar Angular Material en tu proyecto, ejecuta el siguiente comando:

Esto instalará @angular/material, @angular/cdk, y @angular/animation en tu proyecto. A continuación, configuraremos una animación en el proyecto. Añade BrowserAnimationsModule en tu archivo src/app/module.ts :

Utilizaremos el componente Dialog de Angular Material. Para usar el componente Dialog, tenemos que importar MatDialogModule en el archivo src/app/app.module.ts :

Para hacer la interfaz de usuario más atractiva, añadamos indigo-pink.css a tu archivo styles.scss :

Paso 3: Construir tu interceptor de Angular

Bajo la carpeta app, crearemos una nueva carpeta llamada interceptor. Dentro de esta carpeta recién creada, crea un nuevo archivo httpconfig.interceptor.ts .

Necesitamos importar algunas dependencias en nuestro httpconfig.interceptor.ts para que nuestro interceptor funcione. Estas dependencias son HttpInterceptor, HttpRequest, HttpResponse, y HttpHandler, HttpEvent, HttpErrorResponse.

Nuestro archivo httpconfig.interceptor.ts se verá como a continuación después de la importación:

A continuación, crea una clase HttpConfigInterceptor e implementa la interfaz HttpInterceptor. Este es un ejemplo:

Agregue el siguiente código al httpconfig.interceptor.ts archivo:

Para que funcione, necesitamos importar httpconfig.interceptor.ts en nuestro app.module.ts archivo:

Agregue HttpConfigInterceptor a providers. Estableceremos multi: true para manejar múltiples interceptores:

In la siguiente sección, crearemos nuestro servicio para manejar errores.

Paso 4: Servicio para el manejo de errores

Aquí escribiremos el código para manejar errores. Necesitaremos capturar los errores y mostrarlos adecuadamente a los usuarios finales. En pocas palabras, a continuación se detallan los pasos que seguiremos:

  1. Cree una carpeta llamada error-dialog en la app carpeta.
  2. Cree un servicio para errores llamado errorDialogService en un archivo llamado errordialog.service.ts.
  3. Agregue el siguiente código en el errordialog.service.ts :
Después de eso, crea un nuevo archivo llamado errordialog.component.ts. Dentro de este archivo agrega el código de abajo:
Finalmente, necesitamos crear un archivo HTML, errordialog.component.html, para la plantilla:
Necesitamos revisar el archivo httpconfig.interceptor.ts para realizar algunos cambios. Estos cambios nos permitirán interceptar errores.

Para resumir, listemos los pasos a continuación:

  1. Comienza importando errordialog.service.
  2. Luego, agregaremos el constructor para errorDialogService.
  3. También agregaremos el código para manejar la respuesta de error usando catchError y throwError.
  4. Importa errordialog.service y errordialog.component en el AppModule.

Después de realizar los cambios, se modificarán dos archivos: app.module.ts y httpconfig.interceptor.ts:

Paso 5: Creación de servicios de muestra

En este paso crearemos dos servicios como muestra:

  1. API de inicio de sesión
  2. API de detalles del cliente

Cree una nueva carpeta llamada services en la carpeta src. A continuación, dentro de esta carpeta recién creada, cree un nuevo archivo llamado login.service.ts, y agregue dos funciones:

Paso 6: Llamar al servicio de cliente HTTP

Finalmente, estamos en la última parte de nuestro tutorial. Llamaremos a nuestro servicio HTTP desde el archivo app.component.ts. Agregue las dos funciones de LoginService a app.component.ts. Llame a la API de inicio de sesión con onload y a la de customers/details con onclick:

Ahora tenemos que agregar un elemento de interfaz de usuario en app.component.html, para que el usuario pueda hacer clic en él:

Para terminar, necesitará incluir el LoginService en providers de AppModule:

A continuación, encontrará una captura de pantalla del cuadro de diálogo del manejador de errores:

error

Conclusión

En este tutorial, aprendimos a manejar peticiones y respuestas HTTP utilizando interceptores de Angular. También aprendimos a manejar errores utilizando un cuadro de diálogo en Angular Material.

Las aplicaciones de Angular utilizan Node.js como su entorno de ejecución. Si quiere aprender más sobre Node.js y cómo desplegar aplicaciones de Node.js en Docker, consulte nuestra Cómo desplegar una aplicación de Node.js (Express.js) con Docker en Ubuntu 20.04 guía. También puede consultar Cómo realizar tareas de producción en Ubuntu 20.04 con Node.js y Cómo instalar Node.js en CentOS 8: una guía completa.

¡Feliz programación!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.