V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
linkbg
V2EX  ›  Python

请问为什么要使用 rest api

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

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

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

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

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

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

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

    RagingSweet
        9
    RagingSweet  
       2016-02-22 08:34:16 +08:00
    @noli 讲的太好了,通俗易懂
    SourceMan
        10
    SourceMan  
       2016-02-22 09:09:33 +08:00
    你理解的不是 rest api 的核心
    yuriko
        11
    yuriko  
       2016-02-22 09:11:32 +08:00   ❤️ 2
    主要是设计思路的变化
    传统的 web 观点是请求-返回的思路,每个地址代表一个功能,像功能发送请求,得到反馈结果
    更像是函数操作

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

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

    http://www.ruanyifeng.com/blog/2014/05/restful_api.html
    strahe
        15
    strahe  
       2016-02-22 10:07:44 +08:00
    只是一种规范而已,你需要多看一下相关的文章,在回头看看你要不要尊崇这个规范
    kulove
        16
    kulove  
       2016-02-22 10:46:17 +08:00
    通用 开发一套接口 在 web ios android 等平台都可以用
    ragnaroks
        17
    ragnaroks  
       2016-02-22 13:22:20 +08:00
    大家都在用,我不用岂不是很没有面子
    zacard
        18
    zacard  
       2016-02-22 14:57:38 +08:00
    方便前后端分离、后端业务服务化等等
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5801 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 06:32 · PVG 14:32 · LAX 22:32 · JFK 01:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.