Olá pessoal, Como deve ser feito o tratamento de erros com o feign? Por exemplo, se o cliente envia uma solicitação de um recurso inexistente e tem um erro 404 como retorno, como o Feign deve fazer o tratamento desse erro ?
Tks!
Olá pessoal, Como deve ser feito o tratamento de erros com o feign? Por exemplo, se o cliente envia uma solicitação de um recurso inexistente e tem um erro 404 como retorno, como o Feign deve fazer o tratamento desse erro ?
Tks!
Olá Leandro, tudo bem?
Para tratar erros com o Feign, você pode utilizar a anotação @ErrorDecoder. Com ela, é possível personalizar o tratamento de erros para cada tipo de exceção.
No caso de erro 404, você pode criar uma classe que implemente a interface ErrorDecoder e sobrescrever o método decode. Dentro desse método, você pode verificar qual é o status da resposta e lançar uma exceção personalizada.
Por exemplo:
public class CustomErrorDecoder implements ErrorDecoder {
@Override
public Exception decode(String methodKey, Response response) {
if (response.status() == 404) {
return new RecursoNaoEncontradoException();
}
return new Exception(response.reason());
}
}
Nesse exemplo, a classe RecursoNaoEncontradoException seria uma exceção personalizada para o erro 404.
Para utilizar essa classe no Feign, basta adicionar a anotação @FeignClient na interface que define a comunicação com o serviço externo, passando a classe CustomErrorDecoder como parâmetro.
Espero ter ajudado e bons estudos!