RESTful介紹和使用教程

出自:https://blog.csdn.net/x541211190/article/details/81141459web

一.REST起源
REST(Representational State Transfer)表象化狀態轉變(表述性狀態轉變),在2000年被提出,基於HTTP、URI、XML、JSON等標準和協議,支持輕量級、跨平臺、跨語言的架構設計。是Web服務的一種新的架構風格(一種思想)。

1.什麼是輕量級:
代碼不被侵入(正例:SpringMVC中不用接口和繼承,僅用註解完成。反例:Struts中每個Action都要繼承核心控制器),輕量級跟包大小無關。耦合性越低,越輕量。

二.REST架構的主要原則spring

  • 對網絡上全部的資源都有一個資源標誌符。
  • 對資源的操做不會改變標識符。
  • 同一資源有多種表現形式(xml、json)
  • 全部操做都是無狀態的(Stateless)

符合上述REST原則的架構方式稱爲RESTful

1.URI和URL區別:
URI:http://example.com/users/
URL:http://example.com/users/{user} (one for each user)

2.什麼是無狀態性:
使得客戶端和服務器端沒必要保存對方的詳細信息,服務器只須要處理當前的請求,不需瞭解請求的歷史。能夠更容易的釋放資源,讓服務器利用Pool(鏈接池)技術來提升穩定性和性能。



三.RESTful介紹
RESTful是一種常見的REST應用,是遵循REST風格的web服務,REST式的web服務是一種ROA(面向資源的架構)。

1.RESTful資源操做json

http方法 資源操做 冪等 安全
GET SELECT
POST INSERT
PUT UPDATE
DELETE DELETE


冪等性:對同一REST接口的屢次訪問,獲得的資源狀態是相同的。
安全性:對該REST接口訪問,不會使服務器端資源的狀態發生改變。

2.接口示例:
2.1.傳統URL請求格式:
http://127.0.0.1/user/query/1 GET 根據用戶id查詢用戶數據
http://127.0.0.1/user/save POST 新增用戶
http://127.0.0.1/user/update POST 修改用戶信息
http://127.0.0.1/user/delete GET/POST 刪除用戶信息

2.2.RESTful請求格式:
http://127.0.0.1/user/1 GET 根據用戶id查詢用戶數據
http://127.0.0.1/user POST 新增用戶
http://127.0.0.1/user PUT 修改用戶信息
http://127.0.0.1/user DELETE 刪除用戶信息

3.響應設計
原則:數據接收到便可使用,無需拆箱。

在一次請求中,content body僅僅用於傳輸數據。Header中存放描述請求或請求的元數據,例如 X-Result-Fields。
後端

 



4.http響應狀態碼
根據http響應碼,判斷請求狀態,進而作出提醒。
安全



四.RESTful的使用
下面將用實際代碼演示RESTful作增刪改查的操做使用示例:

1.查詢get:
服務器


查詢測試:
網絡


2.新增post:

新增測試:
AJAX調用:
架構


3.更新put:


Service寫法:

更新測試:
app



默認狀況下,PUT請求是沒法提交表單數據的,在Spring MVC項目中須要在web.xml中添加過濾器解決: less

<!-- 解決PUT請求沒法提交表單數據的問題 -->
<filter>
    <filter-name>HttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>HttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>


4.刪除delete:

刪除測試:
五.結語至此,RESTful的介紹和使用已經完成,RESTful已在各互聯網公司接口定義中,成爲主流的範式,RESTful減小了傳統請求的拆裝箱操做,結構清晰,在接口定義中受到先後端開發者的青睞。

相關文章
相關標籤/搜索