很多人以為
/users?id=1
改成
/users/1
就是Restful了
Restful是個風格
不過不是改個route, controller樣貌就叫Restful
以前自己在看的時候
比較難理解的個人覺得有兩個地方
第一就是資源點觀念
先來講講上面的觀念差異
/users?id=1
用資源點的觀念來看
就是資源點在/users
我要從users中query出id是1的user
所以說不是有parameter的就不是Restful
一樣能用資源點的觀念解釋
/users/1
這個1代表什麼自行定義吧
如果1代表的是group的話呢
users/1就是users被定義於group 1的資源點
可能也是多數也可以再用parameter query它
就像users/1?age<10
資源點就是這樣的概念
所以不是單純route的樣貌就決定是不是Restful
當然多數我們在設計時還是習慣會多個提醒
弄成這樣/users/group/1
照這樣講好像怎樣解釋都行的通?
當然不是這樣子
資源點要是名詞
當有route被設計成
/get-user-password?account=abc
這樣的設計就偏離Restful了
因為帶有動詞的意味
第二個比較難理解就是無狀態
無狀態的定義就是你每次的request
都跟你之前的request無關
說的這麼複雜直接講白點就是
不要用session啦
過往設計可能會有第一次request
存點資料在session
下次request可能拿來用
不過這就背離Restful啦
而無狀態的好處是很明顯的
因為沒有狀態server只是取得資源點的地方
所以可以輕鬆的達成
多台Server提供服務
你每次的request連接到哪一台都沒差
要判斷你的設計是不是無狀態的
單純就考量這一點即可
能否Server多開後
同一使用者的Request
就算輪著一台一台戳也不會有問題
其他的觀念
個人覺得都算容易理解也不用贅述了
當然由於Restful沒明確指示做法
這是我個人解讀
覺得有誤也請指正了