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

Status de erro na resposta do método PUT

Olá.

No vídeo, foi mostrado que o código do status de resposta do método PUT é 400. Mas, é possível que ele não encontre o registro com o id informado. Nesse caso, o código do erro seria 404, pois dentro do 'atualizar' chamamos o 'pegarPorId'. O que devemos fazer quando existe mais de uma possibilidade de erro com códigos diferentes? Qual código deve ser retornado no bloco "catch" ? Existe uma forma de retornarmos mais de um tipo de código de erro dependendo do que ocorrerá?

2 respostas
solução!

Olá, Rômulo! Tudo bem?

Bom ponto.

Nesses casos, é melhor você dar preferência ao erro 404, para que a sua API seja mais descritiva e clara, e o cliente entenda como prosseguir. Mas, realmente, não podemos retornar os dois erros no bloco catch.

Assim, uma boa alternativa é você criar sua própria classe de erro (o instrutor inclusive faz algo assim mais a frente). Desta forma, você tem mais controle sobre seus erros, podendo usar condicionais (if) para decidir que erro deseja lançar manualmente (throw new Error). Então, neste caso, por exemplo, você poderia fazer:

  • Verifica se o corpo da requisição possui os dados: se sim, continua, se não, retorna um erro dizendo exatamente isso;
  • Após o processo acima, verifica se o ID é válido: se sim, continua a operação, se não, retorna um erro específico.

Em APIs mais robustas, esse processo é um pouco mais claro, justamente porque há mais divisão de responsabilidades, e os erros podem ocorrer em "níveis" diferentes da aplicação. Aqui, por exemplo, teríamos um erro de não encontrado dentro do próprio pegarPorId, e sendo assim, o método de PUT não precisaria se preocupar com qual erro retornar.

Mas fique tranquilo, mais a frente no curso o instrutor irá tratar disso e ficará mais claro!

Espero ter ajudado, e bons estudos!

Olá, Leonardo. Muito obrigado pela explicação.

Continuei assistindo ao curso e vi que o instrutor ensinou muito bem como fazer.