Saltar al contenido
Open Security
Backend y ArquitecturaInicial· 30 min

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.

#backend#http#apis

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.

vt@labs:~
curl -i https://example.com

La 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.

vt@labs:~
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.

¿Hiciste el lab?

Si querés, guardá lo que hiciste (comandos, notas, un repo) para volver después. Y si encontrás un error o querés mejorar este lab,contribuí al repo. El progreso se guarda solo en tu navegador.