英文原文: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是衆多可用的擴展之一。