@RestControllerAdvice
public class GestorDerErrores {
@ExceptionHandler(EntityNotFoundException.class)
public ResponseEntity getionarError404() {
return ResponseEntity.notFound().build();
}
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity getionarError400(MethodArgumentNotValidException ex) {
var errores = ex.getFieldErrors();
return ResponseEntity.badRequest().body(errores.stream().map(DatosErrorValidacion::new).toList());
}
public record DatosErrorValidacion(String campo, String mensaje) {
public DatosErrorValidacion(FieldError error){
this(error.getField(), error.getDefaultMessage());
}
}
}
Agrege en application.properties para evitar que el stacktracer de la excepción sea devuelto en el cuerpo de la respuesta:
server.error.include-stacktrace=never