我想为Some-Micro-Service创建一个客户端库(Some-Micro-Service-Client),以便可以轻松地将其包含在Some-Other-Micro-service的pom中。
我想使用Feign,因为它可以简化事情,但是我不确定我的体系结构是否可以实现。我看到的所有Feign示例都从在SpringBootAppplication类上使用@EnableFeignClient批注开始,但是由于我不希望客户端库必须“启动”,所以我想知道是否可以仅包含它在库中使用,而不使用EnableFeignClient注释。
答案 0 :(得分:0)
是的,您可以使用没有@EnableFeingClient
批注的feign。假设我们想从this 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);
}
最后,让我们构建所需的休息客户并提出测试请求:
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);
}
}
有关更多信息和可能性,请阅读official repository。