• 一文搞懂RESTful开发


    • REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格

      当我们想表示一个网络资源的时候,可以使用两种方式:

      • 传统风格资源描述形式

        • http://localhost/user/getById?id=1 查询id为1的用户信息

        • http://localhost/user/saveUser 保存用户信息

      • REST风格描述形式

        • http://localhost/user/1

        • http://localhost/user

    传统方式一般是一个请求url对应一种操作,这样做不仅麻烦,也不安全,因为会程序的人读取了你的请求url地址,就大概知道该url实现的是一个什么样的操作。

    查看REST风格的描述,你会发现请求地址变的简单了,并且光看请求URL并不是很能猜出来该URL的具体功能

    所以REST的优点有:

    • 隐藏资源的访问行为,无法通过地址得知对资源是何种操作

    • 书写简化

    但是我们的问题也随之而来了,一个相同的url地址即可以是新增也可以是修改或者查询,那么到底我们该如何区分该请求到底是什么操作呢?

    • 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作

      • http://localhost/users 查询全部用户信息 GET(查询)

      • http://localhost/users/1 查询指定用户信息 GET(查询)

      • http://localhost/users 添加用户信息 POST(新增/保存)

      • http://localhost/users 修改用户信息 PUT(修改/更新)

      • http://localhost/users/1 删除用户信息 DELETE(删除)

    请求的方式比较多,但是比较常用的就4种,分别是GET,POST,PUT,DELETE

    按照不同的请求方式代表不同的操作类型。

    • 发送GET请求是用来做查询

    • 发送POST请求是用来做新增

    • 发送PUT请求是用来做修改

    • 发送DELETE请求是用来做删除

    但是注意:

    • 上述行为是约定方式,约定不是规范,可以打破,所以称REST风格,而不是REST规范

      • REST提供了对应的架构方式,按照这种架构设计项目可以降低开发的复杂性,提高系统的可伸缩性

      • REST中规定GET/POST/PUT/DELETE针对的是查询/新增/修改/删除,但是我们如果非要用GET请求做删除,这点在程序上运行是可以实现的

      • 但是如果绝大多数人都遵循这种风格,你写的代码让别人读起来就有点莫名其妙了。

    • 描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源,例如:users、books、accounts......

    清楚了什么是REST风格后,我们后期会经常提到一个概念叫RESTful,那什么又是RESTful呢?

    • 根据REST风格对资源进行访问称为RESTful

    后期我们在进行开发的过程中,大多是都是遵从REST风格来访问我们的后台服务,所以可以说咱们以后都是基于RESTful来进行开发的。

  • 相关阅读:
    C++DAY42
    【直播回顾】战码先锋首期8节直播完美落幕,下期敬请期待!
    抽取泛微和建云的销售合同定时任务(要求记录翻译不成功的字段)
    C //例 7.13 有一个3*4的矩阵,求所有元素中的最大值。
    mysql 多表查询,多次使用inner join和left join混合查询时
    位深度/像素/分辨率/图像大小的计算/帧率/刷新率
    ElasticSearch与Lucene是什么关系?Lucene又是什么?
    Android基础(五):HTTPS
    VScode SSH无法免密登录
    零信任技术对网络安全行业的影响
  • 原文地址:https://www.cnblogs.com/XiaYu-Ye/p/18196674