Re: [請益] 所以,到底什麼是RESTful API?

看板Soft_Job作者 (jdlee)時間6年前 (2019/03/12 14:14), 編輯推噓50(5002)
留言52則, 51人參與, 6年前最新討論串4/8 (看更多)
※ 引述《thefattiger (LawTea)》之銘言: : 但查了一下資訊卻還是摸不著頭緒 : 估狗RESTful API 大概都是講到一下幾點 : 1.資源要用URL表示 : 這不是本來就這樣的嗎? : 2.Server要回傳對應的Http Status Code : 這不是也本來就這樣的嗎? : 3.用GET/POST/PUT等動詞表達對資源的操作 : 意思是說, 本來只有GET/POST用法, 但其實還有PUT/PATCH/DELETE等等 : 應該要善加利用這些動詞把操作分得更清楚? : 4.Stateless : 這也很常看到,但Http不是本來就Stateless的嗎? : : 我的問題主要是,這些東西不是Http本來就有的嗎? 您的問題圍繞在"這不是Http本來就這樣的嗎"。RESTful API是利用 既有的A領域工具解決B領域的問題。B領域的人可能會覺得很新奇, 但是熟悉A領域的人,可能會覺得本來就是這樣,沒什麼特別的。 遙想199x年的古老時代,PC軟體工程師J用Java寫了一個資料處理程式。 另一個PC軟體工程師D跟J說: 我的專案剛好需要你的程式。你的程式 可以copy給我嗎?讓我可以編譯連結到我的專案程式。 J: 不行,這個程式我要申請專利,我不想copy給你。而且,你的程式是 用Delphi寫的,你要如何連結我的Java程式? 網路專家H聽到兩人的談話,也加入討論。 H: 現在網路很流行,何不這樣,J的程式放在J的電腦,不用copy給D。 讓D的電腦裡的程式透過網路呼叫J的程式,傳回結果。 J: 這麼神奇!?但是D的程式要如何透過網路呼叫我的函式呢?如何傳遞 參數呢? D: 聽說FTP可以用來在網路上傳檔案,我們把它用來傳參數。我把參數 存成檔案,用ftp傳給你,你也把結果存成檔案,用ftp傳回給我。 J: 這個方式聽起來似乎可行,但是感覺執行起來有點麻煩。 H: 現在WWW開始流行,我家阿嬤都在用HTTP瀏覽網站。你們何不使用 HTTP? HTTP的request-response不就好像API函式呼叫嗎?HTTP的url 剛好可以當函式名稱+參數, HTTP的status code剛好也可以拿來當 function error/status code。HTTP的GET/POST/PUT/PATCH/DELETE 剛好可以對應你的資料處理CRUD。如果你的程式專利通過了,你要開放 給全世界上千萬軟體工程師呼叫,剛好HTTP是stateless,可以讓你的 電腦負荷比較小。 D: 太好了,太漂亮了,beautiful! 這種用HTTP做遠端API呼叫的方式 要叫什麼名字呢? H: 用這種方式,工程師們不用煩惱跨語言編譯連結...等很多問題, 可以省下很多時間,這些時間可以拿來好好休息護肝。我們就叫它 RESTful API吧。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.157.17 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1552371268.A.096.html

03/12 15:03, 6年前 , 1F
這篇深得我心 太神了
03/12 15:03, 1F

03/12 15:31, 6年前 , 2F
謝謝你, 你的說明和例子讓科普了我
03/12 15:31, 2F

03/12 15:40, 6年前 , 3F
03/12 15:40, 3F

03/12 15:42, 6年前 , 4F
推推~~ lol
03/12 15:42, 4F

03/12 15:55, 6年前 , 5F
這一串我最愛這篇
03/12 15:55, 5F

03/12 16:12, 6年前 , 6F
讚XD
03/12 16:12, 6F

03/12 17:33, 6年前 , 7F
滿滿的rest~讚讚
03/12 17:33, 7F

03/12 17:44, 6年前 , 8F
03/12 17:44, 8F

03/12 18:32, 6年前 , 9F
03/12 18:32, 9F

03/12 20:28, 6年前 , 10F
幹 原來我多年來理解的REST是錯的 這篇才是真。rest 淚推
03/12 20:28, 10F

03/12 21:36, 6年前 , 11F
這對話好像head first喔XDDDDDDDDDDDDDDDDDDDDDDDDDDDFF
03/12 21:36, 11F

03/12 21:54, 6年前 , 12F
都是你害我又去google來對照你的說法,謝謝
03/12 21:54, 12F

03/12 22:00, 6年前 , 13F
03/12 22:00, 13F

03/12 22:57, 6年前 , 14F
推~~
03/12 22:57, 14F

03/12 23:25, 6年前 , 15F
好像有點可愛
03/12 23:25, 15F

03/13 00:40, 6年前 , 16F
Head First RESTful API!!
03/13 00:40, 16F

03/13 00:53, 6年前 , 17F
很好的說明 當比較XML-RPC SOAP RESTFul都要從歷史演進看
03/13 00:53, 17F

03/13 01:22, 6年前 , 18F
推推
03/13 01:22, 18F

03/13 07:20, 6年前 , 19F
03/13 07:20, 19F

03/13 10:51, 6年前 , 20F
03/13 10:51, 20F

03/13 11:54, 6年前 , 21F
忽然恍然大悟 XD
03/13 11:54, 21F

03/13 16:38, 6年前 , 22F
寫得真好懂 推一個~~~
03/13 16:38, 22F

03/13 18:40, 6年前 , 23F
03/13 18:40, 23F

03/13 20:06, 6年前 , 24F
03/13 20:06, 24F

03/13 23:21, 6年前 , 25F
高手
03/13 23:21, 25F

03/14 01:00, 6年前 , 26F
真的假的!!
03/14 01:00, 26F

03/14 03:08, 6年前 , 27F
教得淺顯易懂,像名師的教法
03/14 03:08, 27F

03/14 08:22, 6年前 , 28F
太傳神啦XDDD
03/14 08:22, 28F

03/14 11:11, 6年前 , 29F
神解析,淺顯易懂!
03/14 11:11, 29F

03/14 18:34, 6年前 , 30F
推推
03/14 18:34, 30F

03/14 21:08, 6年前 , 31F
推推
03/14 21:08, 31F

03/14 21:20, 6年前 , 32F
朝聖!朋友推薦,看完後特地登入推啊啊啊
03/14 21:20, 32F

03/15 00:47, 6年前 , 33F
終於可以看得懂了
03/15 00:47, 33F

03/15 01:38, 6年前 , 34F
簡單明瞭
03/15 01:38, 34F

03/15 15:35, 6年前 , 35F
XD
03/15 15:35, 35F

03/16 00:23, 6年前 , 36F
大推
03/16 00:23, 36F

03/16 17:19, 6年前 , 37F
終於覺得REST簡單不是唬洨的 這篇有種魔力www
03/16 17:19, 37F

03/16 20:28, 6年前 , 38F
為啥一個接近唬洨的說明會被推這麼多啊 ...
03/16 20:28, 38F

03/16 21:24, 6年前 , 39F
推推 很好理解
03/16 21:24, 39F

03/17 15:47, 6年前 , 40F
03/17 15:47, 40F

03/17 19:40, 6年前 , 41F
簡單說就是Common Gateway Interface,簡稱CGI
03/17 19:40, 41F

03/17 21:58, 6年前 , 42F
感謝大神
03/17 21:58, 42F

03/18 01:41, 6年前 , 43F
覺得好像一切都通了XDD 大推
03/18 01:41, 43F

03/18 08:36, 6年前 , 44F
太強了 老師的料
03/18 08:36, 44F

03/18 10:17, 6年前 , 45F
好理解!
03/18 10:17, 45F

03/18 15:13, 6年前 , 46F
推個
03/18 15:13, 46F

03/20 19:55, 6年前 , 47F
優質
03/20 19:55, 47F

03/21 11:42, 6年前 , 48F
淺顯易懂推
03/21 11:42, 48F

03/25 13:06, 6年前 , 49F
非常的reat
03/25 13:06, 49F

03/25 13:06, 6年前 , 50F
打錯了 非常的rest
03/25 13:06, 50F

03/30 00:57, 6年前 , 51F
03/30 00:57, 51F

04/10 19:12, 6年前 , 52F
水哦
04/10 19:12, 52F
文章代碼(AID): #1SXqv42M (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1SXqv42M (Soft_Job)