每個Java開發人員應該知道的五種RESTful客戶端程式碼
如何訪問RESTful Web服務?這取決於你想要完成的事情。
如果您只想測試連線性,像curl這樣的基於終端的實用程式是一個很棒的RESTful Web服務客戶端。如果要檢查服務返回給您的JSON,基於瀏覽器的外掛可能更適合。如果您正處於應用程式開發階段,您可能需要使用JAX-RS,Spring或類似的框架。
以下是每個Java開發人員應該知道的五種:
1.Curl
Curl是一個基於Unix的實用程式,它使開發人員能夠從命令列呼叫URL並生成有關REST響應結果的資訊。結果包括頭資料,XML,JSON和各種其他引數,資訊為純文字。Linux使用者傾向於熟悉curl,因為它通常包含在大多數發行版中。
另一方面,curl不包含在Windows作業系統中,因此Microsoft使用者往往不太習慣URL。但是,預設Git安裝始終包含Bash以發出分散式版本控制系統命令。隨著越來越多的Windows使用者採用Git和GitHub,越來越多的開發人員可以立即使用curl命令。
將curl用作簡單GET請求的RESTful Web服務客戶端的語法是:
$ 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的互動的功能。
以下是用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(); |
3.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); |
4. REST的Chrome擴充套件程式
如果您無法訪問curl並且您不打算編寫RESTful Web服務客戶端程式碼,那麼您始終可以選擇安裝將呼叫基於REST的服務的Chrome或Firefox擴充套件。Postman是眾多可用的擴充套件之一。
相關文章
- 每個開發人員都應該知道的WebSockets知識Web
- 每個開發人員應該知道的 10 個 Linux 命令Linux
- 每個開發人員都應該知道的 10 個 GitHub 倉庫Github
- 每個運維人員應該知道的 10 個 Linux 命令!運維Linux
- 客戶應該知道的8個軟體開發原則
- 每個JavaScript開發人員都應該瞭解UnicodeJavaScriptUnicode
- 開發人員應該害怕低程式碼嗎?
- 每個JavaScript開發人員都應該知道的新ES2018功能(譯文)JavaScript
- 開發人員都應該知道的開源搜尋引擎
- 是否該讓開發人員跟客戶直接交流?
- PDB檔案:每個開發人員都必須知道的
- 新幹貨:開發人員都應該知道的CLI命令
- C#開發人員應該知道的13件事情C#
- 網站開發人員應該知道的61件事網站
- 網站開發人員應該知道的62件事網站
- 每個 Java 開發者都應該知道的 5 個註解Java
- 每個Java開發者都應該知道的5個JDK工具JavaJDK
- Ruby開發人員應該熟悉的10個工具
- Android開發人員應該知道的一些技術Android
- 每個程式設計師應該知道的12個API程式設計師API
- IE客戶客戶端程式開發的利器Bindows客戶端
- 每個 Java 開發者應該知道(並愛上)的 8 個工具Java
- 每個程式設計師應該知道12件事程式設計師
- 開發人員應該學習SQL的9個理由SQL
- Web開發人員應當知道的15個開源專案Web
- 每個程式設計師都該知道的五大定律程式設計師
- GRpc新增客戶端的五種方式RPC客戶端
- 每個開發人員應閱讀的9本書 - Victor Rentea
- 每個前端應該知道的jquery 細節前端jQuery
- 五種應該避免的程式碼註釋
- 服務端和客戶端 RESTful 介面上傳 Excel 的 Python 程式碼服務端客戶端RESTExcelPython
- 每個Python新手都應該知道的程式設計技巧Python程式設計
- 每個Android程式設計師應該知道的KotlinAndroid程式設計師Kotlin
- 每個開發者都應該知道的33個JavaScript概念JavaScript
- Web開發/設計人員應當知道的15個網站Web網站
- IT安全專業人員應該知道的12件事
- 每個Java軟體架構師都應該知道的20件事Java架構
- IT職場:每個黑帶都應該知道的事