创建一个客户端作为库(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);
}
}
有关更多信息和可能性,您可以在官方存储库中阅读。