1. 程式人生 > >什麼是rest?restful?

什麼是rest?restful?

百度百科解釋:

  rest:REST即表述性狀態傳遞(英文:Representational State Transfer,簡稱REST)是Roy Fielding博士在2000年他的博士論文中提出來的一種軟體架構風格。它是一種針對網路應用的設計和開發方式,可以降低開發的複雜性,提高系統的可伸縮性。

  restful:一種軟體架構風格、設計風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。

 

百度百科的解釋有點專業化,但我們可以從另外一個角度,以舉例的方式來闡述:

通常的web專案的CRUD發出的url一般為

URL 請求方式 操作

http://localhost:8080/myweb/queryById?id=1

或 http://localhost:8080/myweb/query?id=1

GET 根據id查詢資料

http://localhost:8080/myweb/save

或 http://localhost:8080/myweb/add

POST 新增資料

http://localhost:8080/myweb/modify

或 http://localhost:8080/myweb/update

POST 修改資料

http://localhost:8080/myweb/removeById?id=1

GET/POST 根據id刪除資料

 

 

 

 

 

 

 

 

 

 

 

 

一看之下是不是很不爽,同樣的操作對應這各種不同的url,而且用到的Http 的請求方式要麼是GET 要麼是POST,然後實際上Http 的請求方式有八種!

正如此,restful強調的是,一種資源(操作)在網路上對應的有且僅有一個url,而用Http 自身的請求方式來闡述要進行的操作。

 

URL 請求方式 操作
http://localhost:8080/myweb/query/1 GET 根據id查詢資料
http://localhost:8080/myweb/add POST 新增資料
http://localhost:8080/myweb/modify PUT 修改資料
http://localhost:8080/myweb/remove/1 DELETE 根據id刪除資料

 

 

 

 

 

 

 

兩個表格對比之下就簡單明瞭,restful 風格的url 中是不帶“動詞”的,用請求的方式來描述“動詞”,這樣的話GET 請求就是查詢,POST 請求就是新增,PUT 請求就是修改,DELETE 請求就是刪除。

如果按照以前的話,一個查詢就可以有多種url,命名不規範,不能很好的統一,這就是為什麼有restful 的原因。