transformResponse
en Axios?
En Axios, la propiedad transformResponse
es un interceptor que permite modificar los datos que llegan desde el servidor antes de que lleguen a tu código. Es útil cuando necesitas ajustar el formato de los datos, aplicar alguna lógica de transformación o incluso gestionar datos anidados sin tener que hacerlo en varias partes de tu aplicación.
Esta opción se puede definir a nivel global al configurar la instancia de Axios, o a nivel individual dentro de una solicitud.
const axios = require('axios');
axios({
method: 'get',
url: 'https://api.ejemplo.com/datos',
transformResponse: [(data) => {
// Transformación personalizada de los datos
const jsonData = JSON.parse(data);
jsonData.fechaFormateada = new Date(jsonData.fecha).toLocaleDateString();
return jsonData;
}]
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.log('Error:', error);
});
En este ejemplo, transformResponse
convierte la respuesta JSON y añade un campo con la fecha formateada.
Puedes definir transformResponse
para todas las solicitudes de una instancia de Axios:
const instance = axios.create({
transformResponse: [function (data) {
// Lógica de transformación
return JSON.parse(data);
}]
});
Puedes incluir múltiples funciones de transformación, donde cada una actúa en cadena:
axios.get('/usuario', {
transformResponse: [function (data) {
return JSON.parse(data);
}, function (data) {
data.nombreCompleto = `${data.nombre} ${data.apellido}`;
return data;
}]
});
En este caso, primero se parsea el JSON, y luego se genera un campo nombreCompleto
concatenando el nombre y apellido.
Puedes consultar más detalles en la documentación oficial de Axios.
Jorge García
Fullstack developer