每一個Java開發人員應該知道的五種RESTful客戶端代碼

英文原文:https://www.theserverside.com/feature/Five-RESTful-web-service-client-examples-for-developershtml

如何訪問RESTful Web服務?這取決於你想要完成的事情。java

若是您只想測試鏈接性,像curl這樣的基於終端的實用程序是一個很棒的RESTful Web服務客戶端。若是要檢查服務返回給您的JSON,基於瀏覽器的插件可能更適合。若是您正處於應用程序開發階段,您可能須要使用JAX-RS,Spring或相似的框架。jquery

如下是每一個Java開發人員應該知道的五種:web

1.Curlajax

Curl是一個基於Unix的實用程序,它使開發人員可以從命令行調用URL並生成有關REST響應結果的信息。結果包括頭數據,XML,JSON和各類其餘參數,信息爲純文本。Linux用戶傾向於熟悉curl,由於它一般包含在大多數發行版中。api

另外一方面,curl不包含在Windows操做系統中,所以Microsoft用戶每每不太習慣URL。可是,默認Git安裝始終包含Bash以發出分佈式版本控制系統命令。隨着愈來愈多的Windows用戶採用Git和GitHub,愈來愈多的開發人員能夠當即使用curl命令。瀏覽器

將curl用做簡單GET請求的RESTful Web服務客戶端的語法是:app

$ curl -X GET --header "text:Easter" --header "language:fr" http://3.19.68.127/translator-1.0/translate

2.RESTful jQuery客戶端框架

若是要從基於瀏覽器的應用程序訪問RESTful Web服務,則可能須要使用JavaScript框架。全部流行的JavaScript框架和庫,例如AngularJS,Ember.js,React和jQuery,都提供了能夠簡化基於REST的交互的功能。curl

如下是用jQuery編寫的簡單RESTful Web服務客戶端的示例:

<html><head>
<script src="jquery.min.js"></script>
</head>
<body>
<div id="rest-web-service-client"></div>
<script>

$(document).ready(function() {
    $.ajax({
        url: "http://3.19.68.127/translator-1.0/translate",
        headers: {"language":"fr", "text":"rabbit"}
    }).then(function(data) {
       alert(data); // will display 'lapin'
    });
});
</script>
</body>
</html>

3.基於Java的REST客戶端

開發人員將使用諸如Jakarta EE 或Spring Boot之類的Web開發框架來訪問遠程API,由於這兩個框架都具備用Java編寫RESTful Web服務客戶端的內置庫。

但這種奢侈程度並非必需的。下面是一個如何在沒有像Spring這樣的框架的狀況下訪問RESTful Web服務的示例。此示例僅使用java.net和java.io包:

Socket requestSocket = new Socket("http://mcnz.com", 8080);
PrintWriter writer = new PrintWriter(requestSocket.getOutputStream(),true);
writer.write("GET language-translator/api");
writer.flush();
while(true) {
                int x = requestSocket.getInputStream().read();
                if(x==-1) {
                                break;
                }
}
writer.close();
requestSocket.close();

4.RESTful Web服務框架

全部用於開發企業應用程序和微服務的流行庫都可以編寫RESTful Web服務客戶端。Spring Boot,Jersey 和JAX-RS在API方面略有不一樣,但它們足夠類似,開發人員能夠輕鬆地從一個轉換到另外一個。

下面是一段代碼,展現瞭如何使用Spring及其RestTemplate建立RESTful Web客戶端:

HttpHeaders headers = new HttpHeaders();
applyAPIKeyToHeader(key, headers);
headers.setContentType(MediaType.APPLICATION_JSON);
String data = getTextToTranslate(textToTranslate, sourceLanguage, destinationLanguage);
HttpEntity<String> request = new HttpEntity<String>(data, headers);
String url = "www.jdon.com";
ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);
String responseBody = response.getBody();
translationResult = objectMapper.readValue(responseBody, TranslationsResult.class);

5. REST的Chrome擴展程序

若是您沒法訪問curl而且您不打算編寫RESTful Web服務客戶端代碼,那麼您始終能夠選擇安裝將調用基於REST的服務的Chrome或Firefox擴展。Postman是衆多可用的擴展之一。

相關文章
相關標籤/搜索