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!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!