Вызов стороннего API, который не является частью реестра project Eureka, через клиент Feign

#spring-boot #microservices #spring-cloud-feign #openfeign

#spring-boot #микросервисы #spring-cloud-feign #openfeign

Вопрос:

Мне нужно вызвать сторонний API, например: https://google.com.systems.uk/some-api /…. (это поддельный api, но да, сторонний сервис).

Этот api не является частью моих микросервисов и не зарегистрирован в моем реестре eureka, и я не включил для него какой-либо путь маршрутизации в свой шлюз.

Мне нужно вызвать этот api из моего притворного клиента, но получаю ошибку

com.netflix.client.ClientException: Load balancer does not have available server for client:google.com.systems.uk

мой симулированный клиентский код:

 @FeignClient(value = "https://google.com.systems.uk/some-api/",
        decode404 = true)
public interface DataFeign {
    @GetMapping("/query11")
    Object getData(@RequestHeader("Authorization") String someToken, @RequestBody Body queryBody);
}
  

Ответ №1:

Я смог найти ответ на это. использовать

 @FeignClient(value = "Google" url = "https://google.com.systems.uk/some-api/",
        decode404 = true)
public interface DataFeign {
    @GetMapping("/query11")
    Object getData(@RequestHeader("Authorization") String someToken, @RequestBody Body queryBody);
}
  

атрибут url feign поможет в вызове внешних API.
Для вызова API сервисов, зарегистрированных в вашем реестре, вы можете использовать атрибут value или name.