Ejemplos
GET /api/v1/users/42 → { "id": 42, "name": "Alice", "email": "alice@example.com" }POST /api/v1/users { "name": "Bob", "email": "bob@example.com" } → 201 Created, Location: /api/v1/users/99PUT /api/v1/users/42 { "name": "Alice Smith" } → 200 OKDELETE /api/v1/users/42 → 204 No ContentGET /api/v1/posts?author=42&status=published&page=2&limit=20
Preguntas frecuentes
¿REST es stateless pero cómo manejo autenticación?
Cada request incluye un token (JWT, OAuth Bearer) en el header Authorization. El servidor valida el token sin mantener sesión; el token contiene claims (user ID, permisos). Esto permite statelessness: cualquier instancia puede verificar el token.
¿Cuándo uso PUT vs PATCH?
PUT reemplaza el recurso completo; enviás todas las propiedades. PATCH actualiza parcialmente; enviás solo las propiedades que cambian. Ejemplo: PATCH /users/42 { "email": "new@example.com" } actualiza solo email, dejando el resto intacto.
¿Cómo manejo relaciones en REST?
Tres enfoques: 1) Subrecursos: GET /users/42/posts. 2) Query params: GET /posts?user_id=42. 3) Incluir relaciones en la respuesta: GET /users/42?include=posts (devuelve user con posts embebidos). Elegí según profundidad y frecuencia de acceso.