Volver a la página principal
miércoles 23 octubre 2024
10

Cómo transformar la respuesta con transformResponse en Axios

¿Qué es y cómo funciona 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.

Ejemplo de uso básico

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.

Ejemplos adicionales

Transformación global de respuestas

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);
  }]
});

Aplicar múltiples transformaciones

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.

Referencia oficial

Puedes consultar más detalles en la documentación oficial de Axios.

Etiquetas:
javascript
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer