Загрузка…
Загрузка…
Spring · junior · сложность 2
@RestController — это @Controller в сочетании с @ResponseBody: возвращаемое значение каждого метода записывается непосредственно в тело ответа через HttpMessageConverter, а не разрешается как имя представления для визуализации шаблона.
@RestControllerAdvice
public class ApiExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity handleValidation(MethodArgumentNotValidException ex) {
var errors = ex.getBindingResult().getFieldErrors().stream()
.map(e -> new FieldError(e.getField(), e.getDefaultMessage()))
.toList();
return ResponseEntity.badRequest().body(new ErrorResponse("VALIDATION_FAILED", errors));
}
@ExceptionHandler(OrderNotFoundException.class)
public ResponseEntity handleNotFound(OrderNotFoundException ex) {
return ResponseEntity.status(HttpStatus.NOT_FOUND)
.body(new ErrorResponse("ORDER_NOT_FOUND", ex.getMessage()));
}
}@RestController — это @Controller в сочетании с @ResponseBody: возвращаемое значение каждого метода записывается непосредственно в тело ответа через HttpMessageConverter, а не разрешается как имя представления для визуализации шаблона.