Re: [请益] 所以,到底什么是RESTful API?

楼主: jdlee (jdlee)   2019-03-12 14:14:25
※ 引述《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吧。
作者: geroge0820 (可.....可恶)   2019-03-12 15:03:00
这篇深得我心 太神了
作者: PureEatTea (茶花真好喝)   2019-03-12 15:31:00
谢谢你, 你的说明和例子让科普了我
作者: BaJiaJhon (BaJiaJhon)   2019-03-12 15:40:00
作者: oas (GTr)   2019-03-12 15:42:00
推推~~ lol
作者: pxycho (trolltrolltroll)   2019-03-12 15:55:00
这一串我最爱这篇
作者: BBSealion (海狮)   2019-03-12 16:12:00
赞XD
作者: DCTmaybe (竹竹人)   2019-03-12 17:33:00
满满的rest~赞赞
作者: bheegrl   2019-03-12 17:44:00
作者: leon1757tw (leon1757o)   2019-03-12 18:32:00
作者: tz5514 (屁安)   2019-03-12 20:28:00
干 原来我多年来理解的REST是错的 这篇才是真。rest 泪推
作者: vavamos (vavamos)   2019-03-12 21:36:00
这对话好像head first喔XDDDDDDDDDDDDDDDDDDDDDDDDDDDFF
作者: gpctv (gpctv)   2019-03-12 21:54:00
都是你害我又去google来对照你的说法,谢谢
作者: Royne (哲哉)   2019-03-12 22:00:00
作者: hahaRegina (喔)   2019-03-12 22:57:00
推~~
作者: moonxuan (moon)   2019-03-12 23:25:00
好像有点可爱
作者: crazykai (Gooday)   2019-03-13 00:40:00
Head First RESTful API!!
作者: umum29 (....)   2019-03-13 00:53:00
很好的说明 当比较XML-RPC SOAP RESTFul都要从历史演进看
作者: LERICAL (统二布丁)   2019-03-13 01:22:00
推推
作者: internetms52 (Oaide)   2019-03-13 07:20:00
作者: akito117 (宗益)   2019-03-13 10:51:00
作者: mail3403   2019-03-13 11:54:00
忽然恍然大悟 XD
作者: Daiblo2 (心)   2019-03-13 16:38:00
写得真好懂 推一个~~~
作者: terry01333 (terry)   2019-03-13 18:40:00
作者: sa0124 ((恩恩))   2019-03-13 20:06:00
作者: leo770429 (leo)   2019-03-13 23:21:00
高手
作者: wangm4a1 (水兵)   2019-03-14 01:00:00
真的假的!!
作者: Kennyq (舞光十射~*)   2019-03-14 03:08:00
教得浅显易懂,像名师的教法
作者: shorty696820 (虹彩弟弟)   2019-03-14 08:22:00
太传神啦XDDD
作者: LeonSun (MorningSun)   2019-03-14 11:11:00
神解析,浅显易懂!
作者: godxsdog (Zela)   2019-03-14 18:34:00
推推
作者: mathrew (Joey)   2019-03-14 21:08:00
推推
作者: lina7inverse (杉森‧费西佛)   2019-03-14 21:20:00
朝圣!朋友推荐,看完后特地登入推啊啊啊
作者: Lonelygod (平民百姓)   2019-03-15 00:47:00
终于可以看得懂了
作者: mon78892002 (symphony)   2019-03-15 01:38:00
简单明了
作者: gmoz ( This can't do that. )   2019-03-15 15:35:00
XD
作者: TitanEric (泰坦)   2019-03-16 00:23:00
大推
作者: nishishishi (nishishishi)   2019-03-16 17:19:00
终于觉得REST简单不是唬洨的 这篇有种魔力www
作者: benjamin99 (BigPaPa)   2019-03-16 20:28:00
为啥一个接近唬洨的说明会被推这么多啊 ...
作者: koppli60143 (emp)   2019-03-16 21:24:00
推推 很好理解
作者: bird0603136 (哈豆肯!)   2019-03-17 15:47:00
作者: profiles (pforileS)   2019-03-17 19:40:00
简单说就是Common Gateway Interface,简称CGI
作者: WolfTeacher (狼师)   2019-03-17 21:58:00
感谢大神
作者: richer6605 (Rhapsody)   2019-03-18 01:41:00
觉得好像一切都通了XDD 大推
作者: Rmustang (大佐)   2019-03-18 08:36:00
太强了 老师的料
作者: lebniz   2019-03-18 10:17:00
好理解!
作者: sscat (sl15)   2019-03-18 15:13:00
推个
作者: roger00 (Stage Column(?))   2019-03-20 19:55:00
优质
作者: fantastic340 (なすに)   2019-03-21 11:42:00
浅显易懂推
作者: oyaji5566 (大叔56)   2019-03-25 13:06:00
非常的reat打错了 非常的rest

Links booklink

Contact Us: admin [ a t ] ucptt.com