API HTTP base: método, recurso, status y content-type
Antes de JWT, roles o microservicios, una API es una conversación HTTP. Este lab te da el mapa mínimo para leer y diseñar endpoints sin adivinar.
Antes de empezar necesitás
- Saber usar una terminal con curl
- Idea básica de cliente y servidor
Al terminar vas a poder
- Separar método, recurso, headers y body
- Elegir status codes por intención, no por costumbre
- Distinguir errores de input, permisos y servidor
- Diseñar una matriz chica de endpoints
Una API no empieza en JWT ni en arquitectura hexagonal. Empieza con una request: método, ruta, headers, body y una respuesta con status, headers y body.
Leé una respuesta completa
curl -i muestra headers además del body. Usá una URL pública segura o tu propio servicio local.
curl -i https://example.comLa primera línea te dice protocolo y status. Después vienen headers como Content-Type, Cache-Control o Server.
Método + recurso
Un endpoint debería poder leerse como una frase:
GET /notes listar notas
POST /notes crear nota
GET /notes/{id} ver una nota
PATCH /notes/{id} modificar parte de una nota
DELETE /notes/{id} borrar una nota
Status codes como diseño
No uses 200 para todo. Una API más clara separa casos:
caso status razonable
creación correcta 201 Created
sin body, operación exitosa 204 No Content
input inválido 400 Bad Request
no autenticado 401 Unauthorized
sin permiso 403 Forbidden
recurso inexistente 404 Not Found
conflicto de estado 409 Conflict
fallo inesperado 500 Internal Server Error
Content-Type no es decoración
Si mandás JSON, decilo. Si respondés JSON, decilo también.
curl -i -X POST https://api.example.test/notes \
-H "Content-Type: application/json" \
-d '{"title":"nota de juguete"}'No hace falta que esa URL exista: la evidencia puede ser el diseño de la request y una matriz de endpoints. Si la corrés contra una API propia, usá datos ficticios.
Lo que practicás en este lab
Llevátelo a tu repo si querés, pero no es obligatorio: es tu aprendizaje.
- Matriz de endpoints con método, recurso, status esperado y body
- Salida de curl -i contra una URL pública o local
- Writeup: por qué cada endpoint usa ese método y no otro
Reto
Diseñá una API de notas con 5 endpoints. Para cada uno definí método, ruta, status exitoso, dos errores esperados y qué Content-Type devuelve.
Resolvelo y escribí dos líneas explicando qué pasó. Con eso lo fijás.