作者jdlee (jdlee)
看板Soft_Job
标题Re: [请益] 所以,到底什麽是RESTful API?
时间Tue Mar 12 14:14:25 2019
※ 引述《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://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1552371268.A.096.html
1F:推 geroge0820: 这篇深得我心 太神了 03/12 15:03
2F:推 PureEatTea: 谢谢你, 你的说明和例子让科普了我 03/12 15:31
3F:推 BaJiaJhon: 推 03/12 15:40
4F:推 oas: 推推~~ lol 03/12 15:42
5F:推 pxycho: 这一串我最爱这篇 03/12 15:55
6F:推 BBSealion: 赞XD 03/12 16:12
7F:推 DCTmaybe: 满满的rest~赞赞 03/12 17:33
8F:推 bheegrl: 推 03/12 17:44
9F:推 leon1757tw: 推 03/12 18:32
10F:推 tz5514: 干 原来我多年来理解的REST是错的 这篇才是真。rest 泪推 03/12 20:28
11F:推 vavamos: 这对话好像head first喔XDDDDDDDDDDDDDDDDDDDDDDDDDDDFF 03/12 21:36
12F:推 gpctv: 都是你害我又去google来对照你的说法,谢谢 03/12 21:54
13F:推 Royne: 赞 03/12 22:00
14F:推 hahaRegina: 推~~ 03/12 22:57
15F:推 moonxuan: 好像有点可爱 03/12 23:25
16F:推 crazykai: Head First RESTful API!! 03/13 00:40
17F:推 umum29: 很好的说明 当比较XML-RPC SOAP RESTFul都要从历史演进看 03/13 00:53
18F:推 LERICAL: 推推 03/13 01:22
19F:推 internetms52: 推 03/13 07:20
20F:推 akito117: 推 03/13 10:51
21F:推 mail3403: 忽然恍然大悟 XD 03/13 11:54
22F:推 Daiblo2: 写得真好懂 推一个~~~ 03/13 16:38
23F:推 terry01333: 推 03/13 18:40
24F:推 sa0124: 推 03/13 20:06
25F:推 leo770429: 高手 03/13 23:21
26F:推 wangm4a1: 真的假的!! 03/14 01:00
27F:推 Kennyq: 教得浅显易懂,像名师的教法 03/14 03:08
28F:推 shorty696820: 太传神啦XDDD 03/14 08:22
29F:推 LeonSun: 神解析,浅显易懂! 03/14 11:11
30F:推 godxsdog: 推推 03/14 18:34
31F:推 mathrew: 推推 03/14 21:08
32F:推 lina7inverse: 朝圣!朋友推荐,看完後特地登入推啊啊啊 03/14 21:20
33F:推 Lonelygod: 终於可以看得懂了 03/15 00:47
34F:推 mon78892002: 简单明了 03/15 01:38
35F:推 gmoz: XD 03/15 15:35
36F:推 TitanEric: 大推 03/16 00:23
37F:推 nishishishi: 终於觉得REST简单不是唬洨的 这篇有种魔力www 03/16 17:19
38F:推 benjamin99: 为啥一个接近唬洨的说明会被推这麽多啊 ... 03/16 20:28
39F:推 koppli60143: 推推 很好理解 03/16 21:24
40F:推 bird0603136: 推 03/17 15:47
41F:→ profiles: 简单说就是Common Gateway Interface,简称CGI 03/17 19:40
42F:推 WolfTeacher: 感谢大神 03/17 21:58
43F:推 richer6605: 觉得好像一切都通了XDD 大推 03/18 01:41
44F:推 Rmustang: 太强了 老师的料 03/18 08:36
45F:推 lebniz: 好理解! 03/18 10:17
46F:推 sscat: 推个 03/18 15:13
47F:推 roger00: 优质 03/20 19:55
48F:推 fantastic340: 浅显易懂推 03/21 11:42
49F:推 oyaji5566: 非常的reat 03/25 13:06
50F:→ oyaji5566: 打错了 非常的rest 03/25 13:06
51F:推 XasonLai: 推 03/30 00:57
52F:推 qscez: 水哦 04/10 19:12
53F:推 cksxxb123: 谢谢你 超级好懂 07/02 19:50