Repaso
English

¿Cómo pides datos a una API en JavaScript moderno?

async function loadUser(id) {
  const res = await fetch("/api/users/" + id);
  if (!res.ok) throw new Error("HTTP " + res.status);
  return await res.json();
}

Opciones

  1. fetch da una Promise; haz await y comprueba res.ok (Opción correcta)
  2. fetch lanza un error con cada estado HTTP de error
  3. res.json() da los datos de inmediato, sin await
  4. fetch solo sirve para cargar documentos HTML

Respuesta

fetch devuelve una Promise; await la espera; res.json() interpreta el cuerpo; debes comprobar res.ok porque fetch no rechaza con 404/500

Por qué

fetch(url) envía una petición HTTP y devuelve una Promise de un objeto Response.

Detalle importante: solo rechaza si falla la red. Un 404 o un 500 se resuelve igualmente, así que debes comprobar res.ok (o res.status).

res.json() también es asíncrono, lee e interpreta el cuerpo, así que necesita await.

Para enviar datos: fetch(url, { method: "POST", headers: {"Content-Type": "application/json"}, body: JSON.stringify(data) }).

Recuerda

fetch no rechaza con errores HTTP: comprueba res.ok.

Términos clave

Practica esta pregunta en Repaso