Lección 3

Salida fetch vs Axios

Conoce qué cambia cuando una petición pasa de cURL en terminal a código de navegador o Node.

Convertir cURL a fetch o Axios no es solo un cambio de sintaxis. El comportamiento en tiempo de ejecución también puede cambiar.

fetch

fetch está disponible en navegadores modernos y runtimes modernos de Node. Devuelve un objeto response y no lanza excepciones para estados HTTP 4xx o 5xx.

const response = await fetch("https://api.example.com/users", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ name: "Ada" })
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}

Axios

Axios envuelve el comportamiento de petición y respuesta de forma distinta. Típicamente rechaza respuestas que no son 2xx y analiza JSON automáticamente cuando es posible.

const response = await axios.post(
  "https://api.example.com/users",
  { name: "Ada" },
  { headers: { "Content-Type": "application/json" } }
);

Diferencias en el navegador

Un comando cURL puede enviar casi cualquier header desde tu máquina. El código del navegador está limitado por CORS, headers prohibidos, cookies y reglas de credenciales. Una petición convertida puede ser JavaScript válido y aun así fallar en el navegador.

Diferencias en Node

El código Node puede necesitar variables de entorno, configuración de proxy, opciones TLS o manejo de timeouts que un ejemplo simple de cURL no muestra.

Trata el código generado como punto de partida. Revisa las suposiciones de runtime antes de pegarlo en código de producción.

Volver al resumen del curso