请问为什么要使用 rest api

2016-02-21 23:28:08 +08:00
 linkbg
介绍 rest API 的时候给出的解释是能很好的定位资源。但是我不用这个技术我的连接不也是由域名+模块+id 吗?
比如。网址: 127.0.0.1/admin/001.html 。域名 127.0.0.1 。模块 admin 。 001.htm 是通过查询数据库产生的。
这个不也是一个 rest api 的形式吗?
我是不是理解错了呢?。请指教。谢谢
5115 次点击
所在节点    Python
18 条回复
zhjits
2016-02-21 23:44:12 +08:00
REST 不只是 URI 啊……还有比如用 GET 获取, POST 新增, UPDATE 修改, DELETE 删除……
lightening
2016-02-21 23:45:43 +08:00
REST 的核心是 resource ,对一个 resource ,用不同的 HTTP verb 做增删查改。
ipconfiger
2016-02-21 23:54:55 +08:00
其实就是服务端想省事,偷懒,把更复杂的业务逻辑推给客户端去解决
ck65
2016-02-21 23:58:42 +08:00
使服务端批量生产成为通用可靠的方式。
更主要的是告诉很多产品,你们花花绿绿的想法图其实远不需要画那么复杂。
noli
2016-02-22 00:23:15 +08:00
rest api 代表的是一种正交分解问题的设计思路……
好吧,这句话估计对很多人来说都很费解,估计跟没说差不多……

打个比方,把实现一个软件系统的过程,比作铺瓷砖;不能完全铺满,露出空隙或者边角位置的粗糙地面,类似于有 bug 或者照顾不来的需求。

这样的话,如何设计瓷砖的形状和大小就很有学问了;

一块瓷砖或者小瓷片可以覆盖一定的面积;写一些分代码也可以解决一部分需求。
设计好一个形状大量制造的成本会很低;同样地,按照一定的规范写代码,这部分代码也可以很广泛地运用,成本也可以降得很低;

但是如果你用圆形或者星星形的瓷砖,虽然单个看起来很漂亮,但那几乎意味者地面很难完全覆盖;

铺瓷砖是一个平面几何问题;

可是设计 api 是一个非欧几何平面上的平铺问题,
rest api 是设计一个好的形状的一种尝试吧。
FrankFang128
2016-02-22 00:25:59 +08:00
为什么要用 <h1> <p> <code>?
我用 div 一样做页面呀。
SoloCompany
2016-02-22 01:25:09 +08:00
其实可以理解为 design pattern 的一种,不是一定要遵守,只是对于设计不是很在行的来说,有个标准遵守一下会比较容易不犯错误
lightening
2016-02-22 07:09:24 +08:00
可以看看这个 DHH 在 RailsConf 2006 的演讲。虽然讲的是 Rails 的 Resource ,但我觉得这个思想也适用于其他平台。

<amp-youtube data-videoid="GFhoSMD6idk" layout="responsive" width="480" height="270"></amp-youtube>
RagingSweet
2016-02-22 08:34:16 +08:00
@noli 讲的太好了,通俗易懂
SourceMan
2016-02-22 09:09:33 +08:00
你理解的不是 rest api 的核心
yuriko
2016-02-22 09:11:32 +08:00
主要是设计思路的变化
传统的 web 观点是请求-返回的思路,每个地址代表一个功能,像功能发送请求,得到反馈结果
更像是函数操作

现在变为操作-资源的结构,每个地址代表一个资源,通过一个操作指令对其进行各种 CURD 操作
类似于数据库的 CURD 操作

这是完全不同的两种语义。随着网络质量的提升,人们逐渐意识到,网络不只是推送一个请求之后苦等返回的事情了,可以更进一步,和本地资源抽象成一样的概念。
Felldeadbird
2016-02-22 09:25:18 +08:00
@ipconfiger 哈哈~确实如此。懒得设计
wizardoz
2016-02-22 09:35:38 +08:00
一楼说的对, REST 除了定义 uri 的风格以外,还要求充分利用 POST 、 PUT 、 PATCH 、 GET 、 DELETE 几个关键字的定义。
没有使用 REST 风格的大部分是通过 POST 和 GET 完成了所有操作。
FingerLiu
2016-02-22 09:42:59 +08:00
参考下阮一峰老师的这一系列的文章, 理解会深很多

http://www.ruanyifeng.com/blog/2014/05/restful_api.html
strahe
2016-02-22 10:07:44 +08:00
只是一种规范而已,你需要多看一下相关的文章,在回头看看你要不要尊崇这个规范
kulove
2016-02-22 10:46:17 +08:00
通用 开发一套接口 在 web ios android 等平台都可以用
ragnaroks
2016-02-22 13:22:20 +08:00
大家都在用,我不用岂不是很没有面子
zacard
2016-02-22 14:57:38 +08:00
方便前后端分离、后端业务服务化等等

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/258085

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX