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

Ali*_*aka 6 java rest spring jax-rs spring-mvc

我有一个使用Spring注释的服务定义.示例(来源):

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

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

这种客户端用法的示例:

FooClient fooClient = new FooClient("http://localhost:8080");
String foo = fooClient.getFoosBySimplePathWithPathVariable(3l);
Run Code Online (Sandbox Code Playgroud)

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

The*_*Oni 0

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