¡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!
¿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.

¿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.
¿Por qué elegir Apidog?
- Interfaz fácil de usar: Apidog ofrece una interfaz limpia e intuitiva que facilita las pruebas de API.
- Pruebas integrales: Con Apidog, puedes crear y ejecutar escenarios de prueba complejos, asegurando que tus APIs sean robustas y confiables.
- Colaboración: Apidog admite la colaboración en equipo, lo que permite que varios desarrolladores trabajen en proyectos de API simultáneamente.
- De uso gratuito: Lo mejor de todo es que Apidog se puede descargar y usar de forma gratuita. Ya seas un desarrollador individual o parte de un equipo grande, Apidog te tiene cubierto.
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.
Paso 1: Abre Apidog y crea una nueva petición.

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

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

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
- 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.
- 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.
- 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
- 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.
- 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.
- 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!