Una API REST básica para gestionar tareas pendientes, diseñada con buenas prácticas de arquitectura, patrones de diseño y capas bien definidas.
Crear una aplicación To-Do con funcionalidades CRUD, patrones de diseño como Builder y Proxy, y uso de DTOs y Mappers para separación de capas.
- 📋 Listar todas las tareas
- ➕ Crear una nueva tarea
- ✅ Marcar una tarea como completada
- ❌ Eliminar una tarea
| Campo | Tipo | Descripción |
|---|---|---|
id |
Long | Identificador único de la tarea |
titulo |
String | Título de la tarea |
descripcion |
String | Descripción de la tarea |
completado |
boolean | Indica si está completada |
-
🧱 Builder Pattern: Para crear instancias de
Tareade forma más legible y flexible.- Uso:
Tarea tarea = TareaBuilder.builder().titulo("Estudiar").descripcion("Leer Spring").build();
- Uso:
-
🧠 Proxy Pattern: Utilizado para aplicar cache en el listado de tareas, mejorando el rendimiento cuando hay muchas solicitudes.
- El proxy se encarga de devolver resultados cacheados si no hay cambios
- DTOs (
TareaRequest,TareaResponse) usados para separar la lógica de la API del modelo interno. - Mappers generados automáticamente con MapStruct, facilitando la conversión entre entidades y DTOs.
@Mapper(componentModel = "spring")
public interface TareaMapper {
Tarea tareaRequestToTarea(TareaRequest request);
TareaResponse tareaToTareaResponse(Tarea tarea);
List<TareaResponse> tareaListToTareaResponseList(List<Tarea> tareas);
}