詳解 RestTemplate 操作
作為開發人員,我們經常關注于建構偉大的軟體來解決業務問題。資料隻是軟體完成工作時
要處理的原材料。但是如果你問一下業務人員,資料和軟體誰更重要的話,他們很可能會選擇
資料。資料是許多業務的生命之血。軟體通常是可以替換的,但是多年積累的資料是永遠不能
替換的。
近幾年來,以資訊為中心的表述性狀态轉移(Representational State Transfer,REST)已經稱為替代傳統SOAP Web 服務的流行方案.
SOAP關注的一般是行為和處理,而REST關注的是要處理的資料.
從Spring3.0開始,Spring為建立Rest API提供了良好的支援.
REST提供了一個更簡單的可選方案。另外,很多的現代化應用都會有移動或富JavaScript用戶端,它們都會使用運作在伺服器上REST API。
REST的基礎知識
參考我的這篇文章: Restful API 設計指南
當談論REST時,有一種常見的錯誤就是将其視為“基于URL的Web服務”——将REST作為另一
種類型的遠端過程調用(remote procedure call,RPC)機制,就像SOAP一樣,隻不過是通過簡單
的HTTP URL來觸發,而不是使用SOAP大量的XML命名空間
恰好相反,REST與RPC幾乎沒有任何關系。RPC是面向服務的,并關注于行為和動作;而REST
是面向資源的,強調描述應用程式的事物和名詞。
更簡潔地講,REST就是将資源的狀态以最适合用戶端或服務端的形式從伺服器端轉移到客戶
端(或者反過來)。
在REST中,資源通過URL進行識别和定位。至于RESTful URL的結構并沒有嚴格的規則,但是
URL應該能夠識别資源,而不是簡單的發一條指令到伺服器上。再次強調,關注的核心是事
物,而不是行為。
Spring 中如何使用Rest資源
借助 RestTemplate,Spring應用能夠友善地使用REST資源
Spring的 RestTemplate通路使用了模版方法的設計模式.
模版方法将過程中與特定實作相關的部分委托給接口,而這個接口的不同實作定義了接口的不同行為.
RestTemplate定義了36個與REST資源互動的方法,其中的大多數都對應于HTTP的方法。
其實,這裡面隻有11個獨立的方法,其中有十個有三種重載形式,而第十一個則重載了六次,這樣一共形成了36個方法。
- delete() 在特定的URL上對資源執行HTTP DELETE操作
-
exchange()
在URL上執行特定的HTTP方法,傳回包含對象的ResponseEntity,這個對象是從響應體中
映射得到的
- execute() 在URL上執行特定的HTTP方法,傳回一個從響應體映射得到的對象
- getForEntity() 發送一個HTTP GET請求,傳回的ResponseEntity包含了響應體所映射成的對象
- getForObject() 發送一個HTTP GET請求,傳回的請求體将映射為一個對象
-
postForEntity()
POST 資料到一個URL,傳回包含一個對象的ResponseEntity,這個對象是從響應體中映射得
到的
- postForObject() POST 資料到一個URL,傳回根據響應體比對形成的對象
- headForHeaders() 發送HTTP HEAD請求,傳回包含特定資源URL的HTTP頭
- optionsForAllow() 發送HTTP OPTIONS請求,傳回對特定URL的Allow頭資訊
- postForLocation() POST 資料到一個URL,傳回新建立資源的URL
- put() PUT 資源到特定的URL
實際上,由于Post 操作的非幂等性,它幾乎可以代替其他的CRUD操作.
--------------------- 本文來自 小光光光 的CSDN 部落格 ,全文位址請點選:https://blog.csdn.net/itguangit/article/details/78825505?utm_source=copy