Java服务器端注释REST客户端库

时间:2016-03-04 16:32:14

标签: java spring annotations rest-client

我正在构建一个消耗外部REST服务的中间件服务(从服务器端)。我目前正在使用带有RestTemplate的Spring启动来进行远程调用。

    Map<String, String> urlVariables = new HashMap<>();
    urlVariables.put("address", IP);
    urlVariables.put("port", PORT);
    urlVariables.put("par1", parameter1);
    urlVariables.put("par2", parameter2);

    MyServiceResponse state =
            restTemplate.getForObject("http://{address}:{port}/service/{par1}/{par2}", MyServiceResponse.class, urlVariables);

我想知道是否有任何提供注释以自动生成REST客户端的库,就像Volley在Android中一样。

@GET(url="http://{address}:{port}/service/{par1}/{par2}")
public MyServiceResponse getCurrentState(String address, String port, String par1, String par2)

4 个答案:

答案 0 :(得分:1)

RESTEasy Proxy Framework

  

Resteasy有一个客户端代理框架,允许您使用JAX-RS   要在远程HTTP资源上调用的注释。它的工作方式是   您编写Java接口并在方法上使用JAX-RS注释   和接口。

答案 1 :(得分:0)

你在寻找这样的东西吗?:

https://github.com/dpalmisano/NoTube-Beancounter-2.0/blob/master/platform/src/main/java/io/beancounter/platform/rai/MyRaiTVService.java#L45

@POST
@Path("/login/auth")
public Response loginWithAuth(
        @FormParam("username") String username,
        @FormParam("token") String token

) {
    try {
        Validations.checkNotEmpty(username, "Missing username parameter");
        Validations.checkNotEmpty(token, "Missing MyRaiTV token parameter");
    } catch (Exception ex) {
        return error(ex.getMessage());
    }

答案 2 :(得分:0)

答案 3 :(得分:0)

您可以使用REST Gap。你只需要:

  • 拥有Spring MVC或JAX-RS样式注释接口
  • 调用REST Gap工厂并传递您的界面和RestTemplate实例
  • 接收调用REST服务的接口实现

这是它在代码中的外观(对于Spring-MVC接口IPetStoreService):

// Create client
IPetStoreService client = RESTTemplateSpringMVCFactory
    .create(restTemplate, "http://mypetstore.com/rest", IPetStoreService.class);

// Call it!
List<Pet> pets = client.listPets();

就是这样!