Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Haga lo que hicimos: RestControllerAdvice

@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