在独立库中使用 Feign 与在 Springboot 应用程序中使用


我想为Some-Micro-Service

创建一个客户端作为库(Some-Micro-Service-Client(,这样它可以很容易地包含在Some-Other-Micro-Service的pom中。

我想使用 Feign,因为它使事情变得更容易,但我不确定我的架构是否可以做到这一点。我看到的所有 Feign 示例都是从在 SpringBootAppplication 类上使用 @EnableFeignClient 注释开始的,但由于我不希望客户端库必须"启动",我想知道是否可以在不使用 EnableFeignClient 注释的情况下将其包含在库中。

是的,你可以在没有注释的情况下使用 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);
    }
}

有关更多信息和可能性,您可以在官方存储库中阅读。

相关内容

  • 没有找到相关文章

最新更新