Re: [請益] 所以,到底什麼是RESTful API?
很多人以為
/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沒明確指示做法
這是我個人解讀
覺得有誤也請指正了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.82.1.106
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1552310788.A.1B9.html
推
03/11 21:45,
6年前
, 1F
03/11 21:45, 1F
→
03/11 21:45,
6年前
, 2F
03/11 21:45, 2F
→
03/11 21:46,
6年前
, 3F
03/11 21:46, 3F
→
03/11 21:46,
6年前
, 4F
03/11 21:46, 4F
→
03/11 21:46,
6年前
, 5F
03/11 21:46, 5F
→
03/11 21:47,
6年前
, 6F
03/11 21:47, 6F
→
03/11 21:48,
6年前
, 7F
03/11 21:48, 7F
→
03/11 21:49,
6年前
, 8F
03/11 21:49, 8F
推
03/11 21:51,
6年前
, 9F
03/11 21:51, 9F
放心啦
以後剩下/graphQL而已XD
※ 編輯: ripple0129 (115.82.1.106), 03/11/2019 21:53:30
→
03/11 21:52,
6年前
, 10F
03/11 21:52, 10F
→
03/11 21:53,
6年前
, 11F
03/11 21:53, 11F
→
03/11 21:54,
6年前
, 12F
03/11 21:54, 12F
→
03/11 21:54,
6年前
, 13F
03/11 21:54, 13F
→
03/11 21:54,
6年前
, 14F
03/11 21:54, 14F
→
03/11 21:55,
6年前
, 15F
03/11 21:55, 15F
→
03/11 21:55,
6年前
, 16F
03/11 21:55, 16F
→
03/11 21:56,
6年前
, 17F
03/11 21:56, 17F
→
03/11 21:56,
6年前
, 18F
03/11 21:56, 18F
推
03/11 22:03,
6年前
, 19F
03/11 22:03, 19F
→
03/11 22:09,
6年前
, 20F
03/11 22:09, 20F
→
03/11 22:09,
6年前
, 21F
03/11 22:09, 21F
→
03/11 22:10,
6年前
, 22F
03/11 22:10, 22F
推
03/11 22:11,
6年前
, 23F
03/11 22:11, 23F
→
03/11 22:40,
6年前
, 24F
03/11 22:40, 24F
→
03/12 05:51,
6年前
, 25F
03/12 05:51, 25F
→
03/12 05:51,
6年前
, 26F
03/12 05:51, 26F
推
03/12 08:14,
6年前
, 27F
03/12 08:14, 27F
→
03/12 11:38,
6年前
, 28F
03/12 11:38, 28F
推
03/12 12:24,
6年前
, 29F
03/12 12:24, 29F
→
03/12 12:24,
6年前
, 30F
03/12 12:24, 30F
→
03/12 12:24,
6年前
, 31F
03/12 12:24, 31F
推
03/12 12:32,
6年前
, 32F
03/12 12:32, 32F
→
03/12 12:32,
6年前
, 33F
03/12 12:32, 33F
→
03/12 12:32,
6年前
, 34F
03/12 12:32, 34F
→
03/12 12:32,
6年前
, 35F
03/12 12:32, 35F
推
03/12 12:39,
6年前
, 36F
03/12 12:39, 36F
→
03/12 12:39,
6年前
, 37F
03/12 12:39, 37F
→
03/12 12:39,
6年前
, 38F
03/12 12:39, 38F
推
03/12 13:27,
6年前
, 39F
03/12 13:27, 39F
→
03/12 13:29,
6年前
, 40F
03/12 13:29, 40F
→
03/12 13:30,
6年前
, 41F
03/12 13:30, 41F
→
03/12 13:31,
6年前
, 42F
03/12 13:31, 42F
推
03/12 13:37,
6年前
, 43F
03/12 13:37, 43F
→
03/12 13:37,
6年前
, 44F
03/12 13:37, 44F
→
03/12 13:37,
6年前
, 45F
03/12 13:37, 45F
推
03/12 13:40,
6年前
, 46F
03/12 13:40, 46F
→
03/12 13:40,
6年前
, 47F
03/12 13:40, 47F
細節本來就沒有嚴謹定義了
只是convention 大家都用複數
你要用單數也沒人可以說錯
但這個範例我個人覺得friends是複數啊
users/1的朋友們
users/1/friends/2這樣才覺得是單數
※ 編輯: ripple0129 (115.82.1.106), 03/12/2019 13:51:34
→
03/12 13:50,
6年前
, 48F
03/12 13:50, 48F
→
03/12 13:57,
6年前
, 49F
03/12 13:57, 49F
→
03/12 14:01,
6年前
, 50F
03/12 14:01, 50F
→
03/12 14:01,
6年前
, 51F
03/12 14:01, 51F
→
03/12 14:01,
6年前
, 52F
03/12 14:01, 52F
→
03/12 15:35,
6年前
, 53F
03/12 15:35, 53F
→
03/12 15:35,
6年前
, 54F
03/12 15:35, 54F
→
03/12 15:36,
6年前
, 55F
03/12 15:36, 55F
→
03/12 15:36,
6年前
, 56F
03/12 15:36, 56F
→
03/12 15:37,
6年前
, 57F
03/12 15:37, 57F
推
03/12 16:07,
6年前
, 58F
03/12 16:07, 58F
→
03/14 09:40,
6年前
, 59F
03/14 09:40, 59F
→
03/14 09:40,
6年前
, 60F
03/14 09:40, 60F
→
03/19 07:25,
6年前
, 61F
03/19 07:25, 61F
→
03/19 07:26,
6年前
, 62F
03/19 07:26, 62F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 8 篇):