Dominando los interceptores de la API Axios: Una guía completa

Descubre el poder de los interceptores de Axios para HTTP. Aprende a configurarlos y usa Apidog para testear y gestionar APIs. ¡Descarga Apidog gratis!

Daniel Costa

Daniel Costa

15 April 2025

Dominando los interceptores de la API Axios: Una guía completa

¡Hola, compañeros desarrolladores! Hoy, nos sumergimos en el mundo de los interceptores de la API de Axios. Si trabajas con APIs, especialmente en el ámbito del desarrollo web, sabes lo vital que es gestionar tus peticiones HTTP de forma eficiente. Ahí es donde los interceptores de la API de Axios son útiles. En esta publicación, exploraremos qué son los interceptores de la API de Axios, por qué los necesitas y cómo usarlos de manera efectiva. Además, te presentaremos Apidog, una herramienta fantástica para pruebas y gestión de APIs que puedes descargar de forma gratuita. ¡Así que, empecemos!

button

¿Qué son los interceptores de la API de Axios?

Antes de entrar en los detalles esenciales, aclaremos qué son los interceptores de la API de Axios. En términos simples, los interceptores de Axios son una característica de la biblioteca Axios que te permite interceptar y modificar peticiones HTTP y respuestas globalmente antes de que sean manejadas por then o catch.

Imagina tener un guardia de seguridad en la entrada de tu aplicación, revisando y ajustando cada petición y respuesta que entra. Eso es precisamente lo que hacen los interceptores. Proporcionan una forma centralizada de añadir lógica personalizada a tus peticiones HTTP y respuestas.

Axios Official Website

¿Por qué usar los interceptores de la API de Axios?

Te estarás preguntando, ¿por qué molestarse con los interceptores cuando puedes manejar directamente las peticiones y respuestas en tu código? Bueno, aquí hay algunas razones convincentes:

Manejo Global de Errores: Los interceptores te permiten implementar el manejo global de errores. En lugar de escribir código de manejo de errores para cada petición individual, puedes definirlo una vez en un interceptor y reutilizarlo en toda tu aplicación.

Gestión de Tokens: Gestionar los tokens de autenticación puede ser una molestia. Con los interceptores, puedes adjuntar automáticamente tokens a tus peticiones y manejar la expiración de tokens sin problemas.

Registro y Depuración: Los interceptores proporcionan una excelente manera de registrar peticiones y respuestas con fines de depuración. Puedes registrar información importante sobre cada petición y respuesta, lo que te ayudará a diagnosticar problemas más rápido.

Modificación de Peticiones: A veces, necesitas modificar las peticiones antes de que se envíen. Los interceptores te permiten añadir encabezados, transformar datos de petición y más, todo en un solo lugar.

Transformación de Respuestas: De manera similar, puedes transformar las respuestas antes de que lleguen a la lógica de tu aplicación. Esto puede ser útil para normalizar datos, manejar diferentes formatos de respuesta, etc.

Ahora que entendemos la importancia de los interceptores de la API de Axios, pasemos a cómo configurarlos.

Configuración de los interceptores de la API de Axios

Para empezar, necesitas tener Axios instalado en tu proyecto. Si aún no lo has hecho, puedes instalarlo usando npm o yarn:

npm install axios

o

yarn add axios

Una vez que tengas Axios instalado, puedes crear una instancia de Axios y configurar tus interceptores. Repasemos el proceso paso a paso.

Creación de una instancia de Axios

Primero, creemos una instancia de Axios. Esta instancia nos permitirá configurar interceptores y realizar peticiones HTTP.

import axios from 'axios';

// Create an Axios instance
const api = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

Añadiendo interceptores de petición

Los interceptores de petición se utilizan para modificar las peticiones antes de que se envíen. Por ejemplo, puedes añadir tokens de autenticación o encabezados personalizados a cada petición.

// Add a request interceptor
api.interceptors.request.use(
  (config) => {
    // Do something before the request is sent
    config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;
    return config;
  },
  (error) => {
    // Do something with request error
    return Promise.reject(error);
  }
);

Añadiendo interceptores de respuesta

Los interceptores de respuesta se utilizan para modificar las respuestas antes de que lleguen a la lógica de tu aplicación. Por ejemplo, puedes manejar respuestas de error globales o transformar datos.

// Add a response interceptor
api.interceptors.response.use(
  (response) => {
    // Do something with response data
    return response;
  },
  (error) => {
    // Do something with response error
    if (error.response.status === 401) {
      // Handle unauthorized access (e.g., redirect to login)
      window.location.href = '/login';
    }
    return Promise.reject(error);
  }
);

Combinando interceptores de petición y respuesta

Puedes combinar interceptores de petición y respuesta para crear un mecanismo robusto de manejo de APIs.

api.interceptors.request.use(
  (config) => {
    config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

api.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
    if (error.response.status === 401) {
      window.location.href = '/login';
    }
    return Promise.reject(error);
  }
);

Casos de uso prácticos de los interceptores de la API de Axios

Exploremos algunos casos de uso prácticos donde los interceptores de la API de Axios pueden hacerte la vida más fácil.

Caso de uso 1: Mecanismo de actualización de tokens

En muchas aplicaciones, necesitas manejar la expiración de tokens y actualizar los tokens sin problemas. Los interceptores pueden ayudarte a lograr esto.

api.interceptors.response.use(
  (response) => {
    return response;
  },
  async (error) => {
    const originalRequest = error.config;
    if (error.response.status === 401 && !originalRequest._retry) {
      originalRequest._retry = true;
      const refreshToken = localStorage.getItem('refreshToken');
      const res = await api.post('/auth/refresh-token', { token: refreshToken });
      if (res.status === 200) {
        localStorage.setItem('token', res.data.token);
        api.defaults.headers.common['Authorization'] = `Bearer ${res.data.token}`;
        return api(originalRequest);
      }
    }
    return Promise.reject(error);
  }
);

Caso de uso 2: Manejo centralizado de errores

En lugar de manejar errores en cada llamada a la API, puedes centralizar el manejo de errores en un interceptor.

api.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
    if (error.response) {
      switch (error.response.status) {
        case 400:
          alert('Bad Request');
          break;
        case 401:
          alert('Unauthorized');
          break;
        case 404:
          alert('Not Found');
          break;
        default:
          alert('An error occurred');
      }
    }
    return Promise.reject(error);
  }
);

Caso de uso 3: Registro de peticiones y respuestas

Con fines de depuración, es posible que desees registrar cada petición y respuesta.

api.interceptors.request.use(
  (config) => {
    console.log('Request:', config);
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

api.interceptors.response.use(
  (response) => {
    console.log('Response:', response);
    return response;
  },
  (error) => {
    console.log('Error Response:', error.response);
    return Promise.reject(error);
  }
);

Introducción a Apidog: Tu compañero de API

Si bien los interceptores de la API de Axios son poderosos, probar y administrar las APIs aún puede ser un desafío. Ahí es donde entra en juego Apidog. Apidog es una herramienta fantástica que te ayuda a diseñar, probar y documentar tus APIs con facilidad.

button

¿Por qué elegir Apidog?

Apidog e interceptores de Axios

Al utilizar los interceptores de axios, Apidog puede capturar y analizar automáticamente las peticiones y respuestas de la API, proporcionando información valiosa y ayudándote a identificar y resolver problemas de manera más eficiente.

Paso 1: Abre Apidog y selecciona nueva petición

Paso 2: Introduce la URL del punto final de la API al que deseas enviar una petición, introduce cualquier encabezado o parámetro de cadena de consulta que desees incluir con la petición, luego haz clic en "Design" para cambiar a la interfaz de diseño de Apidog.

Paso 3: Selecciona "Generate client code " para generar tu código.

Paso 4: Copia el código Axios generado y pégalo en tu proyecto.

Usando Apidog para enviar peticiones HTTP

Apidog ofrece varias funciones avanzadas que mejoran aún más su capacidad para probar peticiones HTTP. Estas funciones te permiten personalizar tus peticiones y manejar escenarios más complejos sin esfuerzo.

button

Paso 1: Abre Apidog y crea una nueva petición.

Apidog

Paso 2: Encuentra o introduce manualmente los detalles de la API para la petición POST que deseas realizar.

Apidog

Paso 3: Rellena los parámetros requeridos y cualquier dato que desees incluir en el cuerpo de la petición.

Apidog

Mejores prácticas para usar interceptores de Axios

Si bien los interceptores de axios son herramientas poderosas, es importante seguir las mejores prácticas para garantizar un código limpio y mantenible y evitar errores comunes.

Consejos para un código de interceptor limpio y mantenible

  1. Separar preocupaciones: Divide la lógica de tu interceptor en funciones o módulos separados según sus responsabilidades. Esto promueve la reutilización del código y facilita el mantenimiento y la actualización de funcionalidades específicas.
  2. Usar patrones de middleware: Adopta patrones de middleware al estructurar tus interceptores. Este enfoque te permite encadenar múltiples interceptores, promoviendo un código modular y composable.
  3. Aprovechar la programación funcional: Los interceptores de Axios se prestan bien a los principios de la programación funcional. Utiliza funciones puras, funciones de orden superior y estructuras de datos inmutables para crear un código más predecible y comprobable.

Evitar errores comunes

  1. Evitar modificar los objetos de petición/respuesta originales: Siempre devuelve un objeto nuevo o una versión clonada del objeto de petición o respuesta original. Modificar los objetos originales puede provocar un comportamiento inesperado y problemas difíciles de depurar.
  2. Manejar los errores adecuadamente: Asegúrate de que los errores se propaguen o se manejen correctamente dentro de tus interceptores. No hacerlo puede resultar en rechazos de promesas no controlados y mensajes de error oscuros.
  3. Ser consciente del rendimiento: Si bien los interceptores son poderosos, el uso excesivo de ellos o la introducción de lógica compleja puede afectar negativamente el rendimiento. Esfuérzate por la simplicidad y la eficiencia en tus implementaciones de interceptores.

Conclusión

Los interceptores de la API de Axios son una herramienta invaluable para gestionar las peticiones y respuestas HTTP en tus aplicaciones. Proporcionan una forma centralizada de manejar errores, gestionar tokens, registrar datos y más. Al configurar los interceptores de la API de Axios, puedes optimizar tus interacciones con la API y crear una base de código más robusta y mantenible.

Además, Apidog complementa a Axios al ofrecer una plataforma poderosa para pruebas y gestión de APIs. Ya sea que estés trabajando en un proyecto pequeño o en una aplicación a gran escala, Apidog puede ayudarte a garantizar que tus APIs sean confiables y estén bien documentadas.

Entonces, ¿qué estás esperando? Comienza a implementar los interceptores de la API de Axios en tus proyectos y descarga Apidog de forma gratuita para llevar tu juego de API al siguiente nivel. ¡Feliz codificación!

button

Explore more

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Aprende a crear cualquier web con Lovable en esta guía completa. Descubre procesos paso a paso, funciones innovadoras e integra herramientas gratuitas como Apidog para gestión API.

15 April 2025

Cómo usar n8n con servidores MCP

Cómo usar n8n con servidores MCP

Automatiza flujos con n8n y servidores MCP para IA. Guía técnica: configuración, APIs, nodo "MCP Server Trigger" y Apidog para pruebas.

14 April 2025

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Este tutorial te guiará para configurar y gestionar claves API personalizadas en Cursor (OpenAI, Anthropic, Google y Azure).

11 April 2025

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs