[爆卦]restful api規範是什麼?優點缺點精華區懶人包

為什麼這篇restful api規範鄉民發文收入到精華區:因為在restful api規範這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者thefattiger (LawTea)看板Soft_Job標題[請益] 所以,到底什麼是RES...


因為Web_Design板滿冷清的所以來這邊問
若不適當請告知

小弟不是Web領域的, 但也難免會碰到相關的東西
常聽到寫Web App的人會講到這個名詞

但查了一下資訊卻還是摸不著頭緒
估狗RESTful API 大概都是講到一下幾點

1.資源要用URL表示
這不是本來就這樣的嗎?
還是指別濫用query string?
關於query string與RESTful實在眾說紛紜, 查了很久也找不到令人信服的答案

2.Server要回傳對應的Http Status Code
這不是也本來就這樣的嗎?

3.用GET/POST/PUT等動詞表達對資源的操作
意思是說, 本來只有GET/POST用法, 但其實還有PUT/PATCH/DELETE等等
應該要善加利用這些動詞把操作分得更清楚?

4.Stateless
這也很常看到,但Http不是本來就Stateless的嗎?
要記錄state一般不都借助於session和cookie?
還是不RESTful的Api會有某種state?

5.資源傳遞的格式
這部分似乎不在RESTful的範圍,可以是json也可以是XML

有Web領域的前輩可以指點一下嗎?
RESTful真的很神秘, 問身邊的人每個認為的重點都不太一樣

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.45.150
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1552278838.A.078.html
neo5277: 根據那八個動詞要什麼給你什麼 03/11 12:35
dreamnook: 一種寫法 03/11 12:44
dreamnook: http://bit.ly/2VScXgS 03/11 12:44
我的問題主要是,這些東西不是Http本來就有的嗎?
還是RESTful的重點就是不要做Http規範以外的行為?
※ 編輯: thefattiger (125.227.45.150), 03/11/2019 12:49:14
dreamnook: 就當作一種寫法讓api更清楚簡潔吧O.O 03/11 13:01
alan3100: 好寫易懂易串接 03/11 13:05
crossdunk: 本來就要 然後咧 ? 要叫做什麼 03/11 13:05
crossdunk: 成功的人本來就會比較容易受到注意,那幹嘛還出一個名 03/11 13:06
crossdunk: 詞叫做生存者偏差 03/11 13:06
DrTech: 年輕人太多吧。古早時代的web URL或Http methods , 還真的 03/11 13:06
DrTech: 是大家亂用一通。 03/11 13:06
deray: 你的google是不是壞掉了? 03/11 13:11
alihue: RESTful 只是一種規定,讓原本大家天花亂墜的設計有一個最 03/11 13:16
alihue: 基本可依循的規則。沒有什麼新技術是沒錯 03/11 13:16
AndCycle: 上古時代是 http://網址/五四三?qwhat=我想幹嘛就幹嘛 03/11 13:17
alihue: 舉個例子,有人用 get 去刪除資料 03/11 13:17
所以推廣RESTful的用意是讓是基於Http的api回歸到應有的樣子
這樣我就能理解了,感謝各位
不然一直google只看到一些Http的東西, 也不知道重點是啥
※ 編輯: thefattiger (125.227.45.150), 03/11/2019 13:24:12
iiiii: 就是面試官喜歡的,真心不騙,kernel裡面一堆get也沒人敢噓 03/11 13:23
iiiii: Linus 03/11 13:23
iceonly: 假設東西找不到,你的回應是什麼?你沒權限要求這東西, 03/11 14:02
iceonly: 又要回應什麼?要CRUD某個資源,你URL名字要怎麼設計? 03/11 14:02
iceonly: 沒去讀restful規範只會設計出一堆奇怪api,你以為RESTFUL 03/11 14:05
iceonly: 其實一點也不RESTFUL 03/11 14:05
pttworld: 你去比較SOAP和RESTful差別就好了 03/11 14:09
bibo9901: 你發現精要了,restful就是隨個人喜好實現 03/11 14:29
bibo9901: 你就算從來不知道RESTful這個字, 設計出的API也差不多這 03/11 14:30
bibo9901: 個樣子. 但是HTTP API這個詞太不潮了, 於是就有一個人把 03/11 14:32
bibo9901: 一些慣例或小技巧稱之為REST. 就像design pattern一樣. 03/11 14:33
ken83924: 推B大見解 03/11 14:37
srxrrr: 推這篇與B大解釋 我一開始看restful也是滿頭問號 03/11 14:49
srxrrr: 不就跟HTTP API一樣的東西嗎XD 03/11 14:50
superpai: 你可以跟GraphQL 比較就知道蠻多點不是「本來就這樣」 03/11 14:52
fayhong: https://goo.gl/e7fykr 03/11 15:03
fayhong: 裡頭有一篇講 ROA 架構的,根基就是 ReSTful 03/11 15:03
fayhong: 建議先讀看看,只是翻譯不太通順,我看了兩三遍,還看了 03/11 15:04
fayhong: 原文作者其他文章才釐清楚原作者要表達的是什麼 03/11 15:04
richard07250: 其實原po講的那些 "理所當然"的東西 很多就是restfu 03/11 15:26
richard07250: 規定的 03/11 15:26
SFMAndroid: 因為只講API人家不一定知道你是指SOAP還是REST吧 03/11 16:32
dreamnook: 用過SOAP就知道肥皂很難撿…QQ 03/11 16:38
jack0204: 就像Coding style的一個東西 03/11 17:01
lemon651: 你覺得很理所當然的東西是因為現今大家都照這個風格寫AP 03/11 17:44
lemon651: I 03/11 17:44
JustinHere: https://bit.ly/2J4Bg9J 03/11 18:07
transforman: 推個 03/11 19:31
oopFoo: http://restcookbook.com/ 03/11 19:51
oopFoo: https://bit.ly/2IWgOnh 03/11 19:51
oopFoo: 其實就用graphql好了。要寫對restful要花一點時間。 03/11 19:52
TakiDog: GET 刪除 GET 登入 天rrr 03/11 19:52
shortoneal: 沒有本來就這樣啊,以前接別人device api,一個GET打 03/11 20:08
shortoneal: 天下呢 03/11 20:08
five07: restful 不是規定,是概念和風格,第一點 url 資源的概念 03/11 22:19
five07: ,並沒有本來就這樣,隨便找都是群魔亂舞的命名 03/11 22:19
kokal: HTTP standard有定,可是沒多少人會去把HTTP standard看完呀 03/11 22:49
TWTRubiks: http://bit.ly/2tZRoyP (小弟我之前寫的) 03/11 23:10
senjor: 應該說很多人都把RESTful當成單純的反射性API在用 03/12 08:56
lgates: 推個 找google完我也是想問 阿不就這樣.. 03/12 18:50
marsyang1: 推肥皂真的很難撿,會撿到翻臉 03/12 19:39
mdkn35: 一個抽象 需要被實現 03/12 19:49
questionboy: 就另一種架構而已 03/13 14:46

你可能也想看看

搜尋相關網站