Использование Feign в автономной библиотеке по сравнению с приложением Springboot - PullRequest
1 голос
/ 30 мая 2019

Я хочу создать клиент для Some-Micro-Service в качестве библиотеки (Some-Micro-Service-Client), чтобы его можно было легко включить в пакет Some-Other-Micro-Service.

Я бы хотел использовать Feign, потому что это облегчает ситуацию, но я не уверен, возможно ли это с моей архитектурой. Все примеры Feign, которые я вижу, начинаются с использования аннотации @EnableFeignClient в классе SpringBootAppplication, но, поскольку я не хочу, чтобы клиентская библиотека была «запущена», я хочу знать, возможно ли ее просто включить в библиотеке без использования аннотации EnableFeignClient.

1 Ответ

0 голосов
/ 31 мая 2019

Да, вы можете использовать feign без @EnableFeingClient аннотации.Предположим, мы хотим получить данные от этого API.В следующем примере я использовал Feign Core и Feign Gson зависимости.

Прежде всего нам нужно создать класс, в котором мы получим результат json:

public class TODO {
    private long id;
    private long userId;
    private String title;
    private boolean completed;

    \\ getters and setters ...
}

После этого мы объявляем интерфейс с будущими методами rest-client:

public interface TaskApi {

    @RequestLine("GET /todos/{id}")
    TODO getTODO(@Param("id") int id);
}

И в заключение давайте построим желаемый клиент rest и сделаем тестовый запрос:

public class FeignTest {

    private static final String API_PATH = "https://jsonplaceholder.typicode.com";

    public static void main(String[] args) {
        TaskApi taskApi = Feign.builder()
                .decoder(new GsonDecoder())
                .target(TaskApi.class, API_PATH);
        TODO todo = taskApi.getTODO(1);
    }
}

Дополнительную информацию и возможности вы можете прочитать в официальном репозитории .

...