1
resposta

Feign acessando recurso inexistente

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!

1 resposta

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!