REST(Representational State Transfer),表現形式狀態轉換,它是一種軟體架構風格 當我們想表示一個網路資源的時候,可以使用兩種方式: 傳統風格資源描述形式 http://localhost/user/getById?id=1 查詢id為1的用戶信息 http://l ...
-
當我們想表示一個網路資源的時候,可以使用兩種方式:
-
傳統風格資源描述形式
-
http://localhost/user/getById?id=1
查詢id為1的用戶信息 -
http://localhost/user/saveUser
保存用戶信息
-
-
REST風格描述形式
-
http://localhost/user/1
-
http://localhost/user
-
-
傳統方式一般是一個請求url對應一種操作,這樣做不僅麻煩,也不安全,因為會程式的人讀取了你的請求url地址,就大概知道該url實現的是一個什麼樣的操作。
查看REST風格的描述,你會發現請求地址變的簡單了,並且光看請求URL並不是很能猜出來該URL的具體功能
所以REST的優點有:
-
隱藏資源的訪問行為,無法通過地址得知對資源是何種操作
-
書寫簡化
但是我們的問題也隨之而來了,一個相同的url地址即可以是新增也可以是修改或者查詢,那麼到底我們該如何區分該請求到底是什麼操作呢?
-
按照REST風格訪問資源時使用行為動作區分對資源進行了何種操作
-
http://localhost/users
-
http://localhost/users/1
查詢指定用戶信息 GET(查詢) -
http://localhost/users
添加用戶信息 POST(新增/保存) -
http://localhost/users
修改用戶信息 PUT(修改/更新) -
http://localhost/users/1
刪除用戶信息 DELETE(刪除)
-
請求的方式比較多,但是比較常用的就4種,分別是GET
,POST
,PUT
,DELETE
。
按照不同的請求方式代表不同的操作類型。
-
發送GET請求是用來做查詢
-
發送POST請求是用來做新增
-
發送PUT請求是用來做修改
-
發送DELETE請求是用來做刪除
但是註意:
-
上述行為是約定方式,約定不是規範,可以打破,所以稱REST風格,而不是REST規範
-
REST提供了對應的架構方式,按照這種架構設計項目可以降低開發的複雜性,提高系統的可伸縮性
-
REST中規定GET/POST/PUT/DELETE針對的是查詢/新增/修改/刪除,但是我們如果非要用GET請求做刪除,這點在程式上運行是可以實現的
-
但是如果絕大多數人都遵循這種風格,你寫的代碼讓別人讀起來就有點莫名其妙了。
-
-
描述模塊的名稱通常使用複數,也就是加s的格式描述,表示此類資源,而非單個資源,例如:users、books、accounts......
清楚了什麼是REST風格後,我們後期會經常提到一個概念叫RESTful
,那什麼又是RESTful呢?
-
根據REST風格對資源進行訪問稱為RESTful。
後期我們在進行開發的過程中,大多是都是遵從REST風格來訪問我們的後臺服務,所以可以說咱們以後都是基於RESTful來進行開發的。