作者thefattiger (LawTea)
看板Soft_Job
標題[請益] 所以,到底什麼是RESTful API?
時間Mon Mar 11 12:33:56 2019
因為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
我的問題主要是,這些東西不是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: 裡頭有一篇講 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
推 transforman: 推個 03/11 19:31
→ 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
推 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