Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Endereço não enviado

Estava fazendo alguns testes depois de implementação da autenticação e percebi que caso eu não envie o campo endereço para o cadastro de médicos, como no print abaixo, a resposta da api é código 403 - Forbidden. Porque nesse caso não é retornado uma mensagem de erro e como resolver essa situação? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Boa noite Jonas,

Esse caso onde o endereço é enviaro como uma String vazia "" ao invés do objeto json complexo não vai retornar mesmo a mensagem de erro pois essa exception nós não estamos tratando no projeto. Se você olhar no log da API, quando você envia desta forma, a exception que estoura é uma HttpMessageNotReadableException.

023-03-07T21:04:16.376-03:00 WARN 6808 --- [nio-8080-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot coerce empty String ("") to med.voll.api.domain.endereco.DadosEndereco value (but could if coercion was enabled using CoercionConfig)]

Para fazer o tratamento desses casos, você pode adicionar um exception handler na classe TratadorDeErros.java mais ou menos assim: @ExceptionHandler(HttpMessageNotReadableException.class) public ResponseEntity tratarErro400(HttpMessageNotReadableException ex) { var errorMessage = ex.getMessage(); return ResponseEntity.badRequest().body(errorMessage); }

É claro que seria legal criar um DTO como ensinado, ao invés de só retornar a String também.

Um abraço! Luis

Fiz dessa forma (utilizando um DTO para o retorno e funcionou Luís, obrigado!