簡體   English   中英

Java服務器端帶注釋的REST客戶端庫

[英]Java server side annotated REST client library

我正在構建一個使用外部REST服務(從服務器端)的中間件服務。 我目前正在使用Spring Boot和RestTemplate進行遠程調用。

    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)

RESTEasy代理框架

Resteasy的客戶端代理框架使您可以使用JAX-RS批注在遠程HTTP資源上調用。 它的工作方式是編寫一個Java接口,並在方法和接口上使用JAX-RS批注。

您是否正在尋找這樣的東西?

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());
    }

您可以為此使用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();

而已!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM