Dando uma estudada no projeto após a conclusão do curso, me surgiu uma dúvida em relação ao Handler de exceptions. Criamos o seguinte método:
@ResponseStatus(code = HttpStatus.BAD_REQUEST)
@ExceptionHandler(MethodArgumentNotValidException.class)
public List<ErroDeFormularioDto> handle(MethodArgumentNotValidException exception) {
List<ErroDeFormularioDto> dto = new ArrayList<ErroDeFormularioDto>();
List<FieldError> fieldErrors = exception.getBindingResult().getFieldErrors();
fieldErrors.forEach(e -> {
String mensagem = messageSource.getMessage(e, LocaleContextHolder.getLocale());
ErroDeFormularioDto erro = new ErroDeFormularioDto(e.getField(), mensagem);
dto.add(erro);
});
return dto;
}
O mesmo devolve uma lista de um Dto com os detalhes dos campos com erros baseados na Bean Vallidation, porém não chega no Controller, certo? Como faríamos para devolver as informações no response do meu endpoint?