Diseña una API REST para un recurso de reservas (habitaciones de hotel). ¿Qué endpoints, códigos y aspectos cuidarías?
Respuesta
- Recursos:
GET /rooms?from=&to= (disponibilidad), POST /bookings (201 + Location), GET /bookings/{id}, PATCH /bookings/{id} (cambiar fechas), POST /bookings/{id}/cancel o DELETE (200/204). - Errores: 400/422 validación, 401/403 autenticación, 404 no existe, 409 conflicto (habitación ya reservada), 429 rate limit.
- Concurrencia: evita la doble reserva con una restricción en la base de datos o una transacción con lock de fila o comprobación de versión.
- Idempotency-Key en POST; paginación por cursor en listas; parámetros de filtro y orden.
- Autenticación (OAuth/JWT), comprobaciones de propiedad, formato de error coherente, versionado
/v1, documentación OpenAPI.
Practica esta pregunta en Repaso