[#19] Manejo global de excepciones y respuestas HTTP coherentes
Issue #19 (closed) - Manejo global de excepciones
Cambios
Nuevos
-
ApiErrorResponserecord con: status, error, message, path, timestamp, fieldErrors -
FieldErrorItemrecord para errores de validación por campo -
GlobalExceptionHandlerTest: 3 tests de integración
Modificados
-
GlobalExceptionHandler: refactor completo- Todos los handlers devuelven
ApiErrorResponse - Logging WARN para 4xx (con path y detalles)
- Logging ERROR con stack trace para 5xx
-
MethodArgumentNotValidException→ field errors detallados -
ConstraintViolationException→ nuevo handler - Path extraído de HttpServletRequest
- Todos los handlers devuelven
-
SwaggerConfig: actualizado a ApiErrorResponse
Eliminados
-
ApiError.java(reemplazado por ApiErrorResponse)
Tests
- 3 tests de integración
✅ (400 con field errors, 404 con path, 500 sin stack trace) - Todos los tests existentes siguen pasando (29/29)
Closes #19 (closed)