背景
最近準備接手公司一個long long ago的項目,發現其中REST接口調用參差不齊,於是才想寫一篇關於REST介紹;一方面鞏固一下原有的知識儲備,另一方面也分享給大家,文中有誤解的地方,煩請大夥留言一起探討,一起共勉!
本篇文章主要從以下三個方面來講:
REST概念是什麼?前後端通信請求方式?REST API接口幾種調用方式?
REST概念是什麼?
百度百科這樣來定義:表現層狀態傳遞(英文:Representational State Transfer,簡稱REST)是Roy Fielding博士在2000年他的博士論文中提出來的一種全球資訊網軟體架構風格。它是一種針對網絡應用的設計和開發方式,可以降低開發的複雜性,提高系統的可伸縮性。
前後端通信請求方式?
REST要求客戶端向服務端發出請求以獲得或修改伺服器上的數據。請求通常由以下部分組成:
HTTP動詞,它定義了要執行的操作類型;HEARD頭部,它允許客戶端傳遞關於請求的信息;CONTENT資源的路徑;DATA數據的可選消息主體。
REST接口調用方式?
REST接口調用,一般前端通過異步調用(Ajax)方式,而後端則可以使用多種方式來處理,常見的有以下幾種:
HttpURLConnection方式;HttpClient方式【最常用】;Spring的RestTemplate方式。HttpURLConnection詳解:
HttpURLConnection是一種多用途、輕量極的HTTP客戶端,使用它來進行HTTP操作可以適用於大多數的應用程式。雖然HttpURLConnection的API提供的比較簡單,但是同時這也使得我們可以更加容易地去使用和擴展它。HttpURLConnection是Java的標準類,它繼承自URLConnection,可用於向指定網站發送GET請求、POST請求。
HttpURLConnection是同步請求,因此需放在子線程中,使用實例如下:
HttpClient詳解【最常用】:
HTTP 協議在 Internet 上使用得最多、最重要的協議了,越來越多的 Java 應用程式需要直接通過 HTTP 協議來訪問網絡資源。雖然在 JDK 的 java net包中已經提供了訪問 HTTP 協議的基本功能,但是對於大部分應用程式來說,JDK 庫本身提供的功能還不夠豐富和靈活。HttpClient 是Apache HttpComponents 下的子項目,用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,並且它支持 HTTP 協議最新的版本和建議。
HttpClient請求方式有多種,寫法基本上一致,現最POST方式進行代碼實例:
Spring的RestTemplate詳解:
使用RestTemplate時,需要在spring-mvc.xml或者application.xml配置文件中加入相應的配置信息,spring boot項目同理:
SimpleClientHttpRequestFactory創建方式
HttpComponentsClientHttpRequestFactory方式【推薦使用】:
附註
因時間有限,文章中細節應用未在此體現,大家閱讀時若有疑問可以隨時留言討論。小編在這裡致敬每一位技術人,大家辛苦啦!!!!