關于RESTfull
關于RESTful
REST的全稱是 Representational State Transfer 中文含義表現層狀態轉化。
符合REST規范的設計,我們稱為RESTful設計。它的設計哲學主要是將服務器提供的內容實體看作一個資源,并表現在URL上。
資源
如下地址,這個地址代表了一個資源,對這個資源的操作,主要體現在HTTP請求方法上,不是體現在URL上。
/user/xxx
過去我們對用戶的增刪改查獲取是如下這樣設計的URL:
POST /user/add?username=xxx
GET /user/remove?username=xxx
POST /user/update?username=xxx
GET /user/get?username=xxx
操作行為主要體現在行為上,主要是用的請求方式是post和get。在RESTful設計中,它是如下這樣的:
post /user/xxx
get /user/xxx
delete /user/xxx
put /user/xxx
它將DELETE和PUT請求方法引入設計中,參與資源的操作和更改資源的狀態。
資源表現
對于資源的具體表現形態,也不在如過去一樣表現在URL上的文件后綴上。
過去設計資源的格式與后綴有很大的關聯,例如:
get /user/xxx.json
get /user/xxx.xml
在RESTful設計中,資源的具體格式由請求報文頭中的Accept字段和服務器的支持情況來決定。
如果客戶端同時接收json和xml格式的響應,那么它的accept字段值就是如下這樣的:
accpet:application/json,application/xm;
靠譜的服務器端應該要估計這個字段,然后根據自己能響應的格式做出響應。在響應報文中,通過content-type字段告知客戶端是什么格式,如下:
content-type:application/json
具體格式,我們稱之為具體的表現。
總結
所以REST的設計就是,將服務器的內容實體當成資源,通過URL設計資源,請求方法定義資源的操作,通過Accept決定資源的表現形式。
RESTful與MVC設計并不沖突,而且是更好的改進。相比MVC,RESTful只是將HTTP請求方法也加入了路由的過程,以及在URL路徑上體現得更資源化。

浙公網安備 33010602011771號