Instrucciones del retoDesarrollador backend
Objetivo
Crea una API REST para una aplicación de lista de tareas. Los clientes deben poder crear, consultar, actualizar y eliminar tareas. La API debe ser segura y guardar la información de forma persistente en una base de datos.
Requisitos principales
- Endpoints
- Crear una tarea con título y fecha de creación.
- Consultar todas las tareas de la base de datos.
- Consultar una tarea por su ID.
- Actualizar una tarea, incluso marcarla como completada.
- Eliminar una tarea por su ID.
- Validación de datos
- Validar los campos obligatorios, como el título de la tarea.
- Devolver errores claros cuando falten datos o sean inválidos.
- Base de datos
- Usar una base de datos relacional, como MySQL o PostgreSQL, o una base NoSQL, como MongoDB.
- Modelo de datos
- Cada tarea debe tener un ID único, título, fecha de creación y un estado, como Pendiente o Completada.
- Seguridad
- Implementar autenticación básica mediante una clave de API o un token.
Mejoras opcionales
- Paginar la lista de tareas.
- Agregar filtros por estado y búsqueda por título.
- Limitar la cantidad de solicitudes a la API.
- Desplegar la API en un servicio en la nube.
- Escribir pruebas unitarias y de integración para las funciones principales.
Prepara tu entrega
- Publica tu solución en un repositorio público de GitHub.
- Incluye un README con instrucciones para configurar y ejecutar el proyecto.
- Explica tu enfoque y las decisiones que tomaste.
- Comprueba que el enlace compartido abra sin pedir acceso.