Re: [請益] 所以,到底什麼是RESTful API?
※ 引述《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
03/12 15:42, 4F
推
03/12 15:55,
6年前
, 5F
03/12 15:55, 5F
推
03/12 16:12,
6年前
, 6F
03/12 16:12, 6F
推
03/12 17:33,
6年前
, 7F
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
03/12 20:28, 10F
推
03/12 21:36,
6年前
, 11F
03/12 21:36, 11F
推
03/12 21:54,
6年前
, 12F
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
03/13 00:40, 16F
推
03/13 00:53,
6年前
, 17F
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
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
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
03/15 15:35, 35F
推
03/16 00:23,
6年前
, 36F
03/16 00:23, 36F
推
03/16 17:19,
6年前
, 37F
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
03/17 19:40, 41F
推
03/17 21:58,
6年前
, 42F
03/17 21:58, 42F
推
03/18 01:41,
6年前
, 43F
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
03/25 13:06, 49F
→
03/25 13:06,
6年前
, 50F
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 8 篇):