Si estás aprendiendo a diseñar APIs, hay ciertas prácticas que te...

Un patrón para que sistemas hablen entre sí usando HTTP.
👉 Piensa en REST como una biblioteca:
Un solo acceso (entrada) Libros organizados por secciones
🟢/items → lista de items
🟢/items/123 → un item específico
Métodos HTTP:
🧾GET = leer
✏️POST = crear
🔁PUT = actualizar
🗑️DELETE = borrar
Los status codes deben ser claros.
❌ Mal: error genérico, sin contexto.
✅ Bien: indicar qué falló y por qué.
Un buen manejo de errores = APIs confiables.
404 Not Found → recurso no existe
400 Bad Request → parámetros incorrectos
500 Internal Server Error → error del server
Una API cambia con el tiempo. Pero no puedes romper lo que ya funciona.
✅ Versiona tu API:
app/v1/users
app/v2/users
Piensa en una API como un libro:
La primera edición no se cambia.
Si hay mejoras → se publica una nueva edición.
Así mantienes compatibilidad hacia atrás.
Protege tu API de abusos y caídas limitando cuántas requests puede hacer un cliente en un tiempo.
Ejemplo de headers:
X-RateLimit-Limit → total permitido
X-RateLimit-Remaining → lo que queda
X-RateLimit-Reset → cuándo se reinicia
Si se pasa del límite → 429 Too Many Requests.
Esto asegura disponibilidad y equidad.
No devuelvas 10.000 resultados en una sola request 🚫
👉 Usa paginación:
Offset → ?page=3&limit=20 (simple, pero lento con grandes datasets).
Cursor → ?cursor=abc&limit=20 (eficiente y consistente).
Piensa en leer un libro 📖
No lo lees entero de golpe → lo lees página por página.
Procesar la misma request varias veces NO debe causar efectos no deseados.
Ejemplo: un pago online 💳
❌ Sin idempotency → cobro duplicado.
✅ Con idempotency → el segundo intento no repite el cargo.
El server guarda la response asociada a esa key.
Así te aseguras de que solo los nuevos requests se procesen.
Dale flexibilidad al cliente para pedir solo lo que necesita.
👉 Filtros:
/users?role=admin
👉 Ordenación:
/users?sort=created_at&order=desc
Así reduces consumo de ancho de banda y haces la API más usable.
📩 Suscríbete a mi newsletter de CERO a SENIOR
Aquí puedes leer la última entrega 👇
🔗ceroasenior.substack.com/p/el-error-que…


