Java Spring - перехват выполнения REST-клиента (Hystrix Feign) - PullRequest
1 голос
/ 15 апреля 2019

У меня есть клиентский интерфейс REST, подобный этому:

public interface NameSearchClient {
    @RequestLine("POST")
    @Headers("Content-Type: application/json")
    SearchResponse searchByName(NameSearchRequest request);

}

Он реализован и настроен в заводском классе, как это:

@Component
public class NameClientFactory {
    public <T> T createFeignClient(Class<T> clientClass, String apiUrl) {
        return Feign.builder()
                .encoder(new GsonEncoder())
                .decoder(new GsonDecoder())
                .target(clientClass, apiUrl);
    }
}

Мне было интересно, возможно ли этонаписать аннотацию Aspect, которая при каждом вызове, выполняемом этим клиентом, выполняет какое-либо действие (еще один HTTP-вызов в моем случае) и добавляет новый заголовок к запросу?Является ли AspectJ правильным инструментом для этого?

1 Ответ

1 голос
/ 16 апреля 2019

Создайте bean-компонент, реализующий feign.RequestInterceptor, и выполняйте там свою работу:

@Component
public class FeignRequestInterceptor implements RequestInterceptor {
  @Override
  public void apply(RequestTemplate template) {
    // your code here
  }
}

См. Также этот ответ .

...