Desarrolla una API REST con autenticación JWT que gestione un CRUD completo de "proyectos". La API debe incluir validación de datos, manejo consistente de errores, y paginación en los endpoints de listado.
Requisitos
- Autenticación con JWT (registro, login, protección de rutas)
- CRUD completo de proyectos (crear, leer, actualizar, eliminar)
- Validación de datos de entrada con mensajes de error claros
- Paginación en el endpoint de listado (limit/offset o cursor)
- Manejo consistente de errores con códigos HTTP apropiados
Ejemplos
Entrada:
POST /api/projects { "name": "Mi Proyecto", "description": "Descripción" } con header Authorization: Bearer <token>
Salida:
201 Created { "id": "uuid", "name": "Mi Proyecto", "description": "Descripción", "createdAt": "2024-01-15T10:00:00Z" }
Entrada:
GET /api/projects?page=1&limit=10 sin token
Salida:
401 Unauthorized { "error": "Token no proporcionado o inválido" }
Tecnologías aceptadas
- Node.js + Express/Fastify
- Python + FastAPI/Flask
- PHP + Laravel/Symfony
- Go + Gin/Echo
- TypeScript + NestJS