HTTP y APIs: cómo hablan los programas por internet
Peticiones y respuestas, métodos GET/POST/PUT/DELETE, códigos de estado y JSON, con un constructor de peticiones interactivo.
Cuando tu móvil consulta el tiempo, envía una PETICIÓN a un servidor y recibe una RESPUESTA. Ese diálogo usa el protocolo HTTP. Una API es simplemente la lista de peticiones que un servidor entiende.
Petición y respuesta
Una petición HTTP tiene: un método (qué quieres hacer), una URL (sobre qué), unas cabeceras (metadatos) y a veces un cuerpo (datos). La respuesta tiene: un código de estado (cómo fue), cabeceras y normalmente un cuerpo (los datos que pediste, en JSON).
Constructor de peticiones
Monta una petición contra una API de ejemplo con /usuarios y mira la respuesta:
Los métodos
| Método | Para | Ejemplo |
|---|---|---|
GET | leer datos (no cambia nada) | GET /usuarios/1 |
POST | crear algo nuevo | POST /usuarios + cuerpo |
PUT / PATCH | modificar algo que existe | PUT /usuarios/1 + cuerpo |
DELETE | borrar | DELETE /usuarios/1 |
Códigos de estado
| Rango | Significa | Los que verás |
|---|---|---|
| 2xx | fue bien | 200 OK · 201 Created · 204 No Content |
| 3xx | redirección | 301 movido · 304 no ha cambiado |
| 4xx | error tuyo (del cliente) | 400 petición mala · 401 sin login · 403 prohibido · 404 no existe · 422 datos inválidos |
| 5xx | error del servidor | 500 error interno · 503 no disponible |
Consumir una API desde código
// JavaScript (fetch)
const res = await fetch("https://api.ejemplo.com/usuarios/1");
if (!res.ok) throw new Error("HTTP " + res.status); // 404, 500...
const usuario = await res.json();
console.log(usuario.nombre);
// POST con cuerpo
await fetch("https://api.ejemplo.com/usuarios", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ nombre: "Marta" })
});
Lo mismo en JavaScript asíncrono, Flutter y Java.
Comprueba lo aprendido
404. ¿Qué ha pasado?