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