每個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 個 GitHub 倉庫Github
- 每個運維人員應該知道的 10 個 Linux 命令!運維Linux
- 每個JavaScript開發人員都應該知道的新ES2018功能(譯文)JavaScript
- 每個 Java 開發者都應該知道的 5 個註解Java
- 每個JavaScript開發人員都應該瞭解UnicodeJavaScriptUnicode
- 每個人都應該知道的jQuery的提示jQuery
- 開發人員應該害怕低程式碼嗎?
- 每個開發者都應該知道的33個JavaScript概念JavaScript
- Android開發人員應該知道的一些技術Android
- 新幹貨:開發人員都應該知道的CLI命令
- 服務端和客戶端 RESTful 介面上傳 Excel 的 Python 程式碼服務端客戶端RESTExcelPython
- GRpc新增客戶端的五種方式RPC客戶端
- 每個Python新手都應該知道的程式設計技巧Python程式設計
- 每個綠帶都應該知道的事
- 2019 年,React 開發人員應該掌握的 22 種神奇工具React
- 每個開發人員應閱讀的9本書 - Victor Rentea
- 每個 Linux 新手都應該知道的 10 個命令Linux
- 每個程式設計師都應該知道的下一個程式語言——Kotlin程式設計師Kotlin
- 每週節省前端開發人員5個小時的五個VSCode外掛 - nickbulljs前端VSCodeJS
- 每個 Kubernetes 應聘者應該知道的 5 個面試題面試題
- 每個人都應該知道網站建設的製作流程與方法!網站
- IT職場:每個黑帶都應該知道的事
- 每個Java軟體架構師都應該知道的20件事Java架構
- 每個人都應該懂點攻防
- 學Java開發每個階段最應該被攻克的難點分享!Java
- 關於Unicode,字符集,字元編碼,每個程式設計師都應該知道的事Unicode字元程式設計師
- 外貿業務員開發客戶的6個渠道
- 開發JAXR客戶端客戶端
- 每個開發都應該懂的正規表示式
- Java程式設計師應該知道的20個有用的庫Java程式設計師
- 【還沒開始】每個前端開發人員都應瞭解的延遲資料前端
- IT安全專業人員應該知道的12件事
- Java開發人員的反應程式設計介紹 - Fernando AlmeidaJava程式設計NaN
- Kubernetes官方java客戶端之五:proto基本操作Java客戶端
- 每個開發者都應該使用的VSCode外掛 - tvkoushikVSCode
- TCP程式設計之服務端和客戶端的開發TCP程式設計服務端客戶端
- 有趣的探索:每個遊戲開發者應該避免用的6種老掉牙設定遊戲開發