如何为Spring服务创建Java客户端?

时间:2017-12-25 14:40:25

标签: java spring rest spring-mvc jax-rs

我有一个使用Spring注释的服务定义。示例(source):

@RequestMapping(value = "/ex/foos/{id}", method = GET)
@ResponseBody
public String getFoosBySimplePathWithPathVariable(
  @PathVariable("id") long id) {
    return "Get a specific Foo with id=" + id;
}

问题是spring(或其他库)是否可以自动创建相同API的远程实现(客户端),而无需手动键入路径,方法类型,参数名称等(如使用RestTemplate时需要) ?

此类客户端使用示例:

FooClient fooClient = new FooClient("http://localhost:8080");
String foo = fooClient.getFoosBySimplePathWithPathVariable(3l);

我怎样才能获得这样一个客户端“生成”的实现“?

2 个答案:

答案 0 :(得分:0)

您可以使用Swagger Editor生成它。您只需定义资源的路径,然后它就会为您生成几乎所有您选择的语言的客户端

答案 1 :(得分:0)

您可能正在寻找Feign Client。它可以满足您的所有需求:通过HTTP调用一个服务类似于调用Java接口的方法。但是要使它工作,你需要Spring Cloud,标准的Spring框架还没有这个功能。