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

[Dúvida] Insomnia apresenta erro 500 ao invés de 400 - cadastro de médico

Boa tarde pessoal, Eu de novo aqui (rsrsrs).

Então, será que alguma coisa mudou do curso para cá? Pergunto pois quando faço tento fazer a inclusão era para retornar o erro 400 ("conforme instrução na aula do professor"). E está retornando o erro 500.

Tela Insomnia: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ao rodar o debug, percebo que o tratamento de erro não é chamado pelo arquivo TratadorDeErros através do método tratarErro400 ( conforme a imagem abaixo). Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E o erro que é apresentado na tela da insomnia é o resultado que vem em resposta ao tentar gravar os registros diretamente no Mysql.

Nesse caso, teria algumas perguntas: 1 - como saber o nome parametro correto que devo utilizar no método tratarErro400? De onde tiro essa informação ?

2 - ou mudou alguma coisa que não consegui identificar. O que seria ?

Vlw pessoal, grande abraço.

1 resposta
solução!

Solução encontrada pessoal! :)

Então, lembrei que tinha uma anotação que vazia a validação dos campos do DTO a @Valid foi apenas adicionar essa anotação ao método de criação e voltou a funcionar.

 @PostMapping
    @Transactional
    public ResponseEntity cadastrar(@RequestBody @Valid DadosCadastroMedico dados, UriComponentsBuilder uriBuilder){
        var medico = new Medico(dados);

        repository.save(medico);
        var uri = uriBuilder.path("/medicos/{id}").buildAndExpand(medico.getId()).toUri();

        return ResponseEntity.created(uri).body(new DadosDetalhamentoMedico(medico));
    }

Vlw