Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

@RestControllerAdvice

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?

1 resposta
solução!

Acabei de testar. Na verdade minha classe de atualizacao nao estava anotada e nao estava devolvendo, mas entendo que automaticamente, por ter a anotação @Valid, o response já devolve o retorno do handle.

Ta resolvido aqui!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software