restful风格个人理解

之前有很多人问我面我restful方面的知识,我虽然知道是一种风格,项目中也是一直使用restful的格式进行编码,但是实际上我对restful这个概念没有真正系统的整理,那么就来说下restful风格。
restful中的REST是Representational State Transfer的缩写,即表现状态变化。这么说感觉还是有点悬乎。那么参考网上对Rest架构的主要原则说明是:

  1. 网络上的所有事物都被抽象为资源
  2. 每个资源都有唯一的资源标识符
  3. 同一个资源具有多种表现形式(xml,json等)
  4. 对资源的各种操作不会该百年资源标识符
  5. 所有与的操作都是无状态

符合以上REST原则的架构方式即可称为RESTful

Restful web service是一种常见的rest的应用,是遵守了rest风格的web服务;rest式的web服务是一种ROA(The Resource-Oriented Architecture)(面向资源的架构)
参考别人的说明 https://blog.csdn.net/uniqueweimeijun/article/details/79514738

在Restful之前的操作:
http://127.0.0.1/user/query/1 GET  根据用户id查询用户数据
http://127.0.0.1/user/save POST 新增用户
http://127.0.0.1/user/update POST 修改用户信息
http://127.0.0.1/user/delete GET/POST 删除用户信息

RESTful用法:
http://127.0.0.1/user/1 GET  根据用户id查询用户数据
http://127.0.0.1/user  POST 新增用户
http://127.0.0.1/user  PUT 修改用户信息
http://127.0.0.1/user  DELETE 删除用户信息

之前的操作是没有问题的,大神认为是有问题的,有什么问题呢?你每次请求的接口或者地址,都在做描述,例如查询的时候用了query,新增的时候用了save,其实完全没有这个必要,我使用了get请求,就是查询.使用post请求,就是新增的请求,我的意图很明显,完全没有必要做描述,这就是为什么有了restful.(要是这个对象的操作有很复杂的呢,仅凭post可能会有对应的可能的多个操作,比如修改用户信息,假设这个用户的信息构成很复杂呢,不止影响到一个表,但是回过头来不得不否认这种面向资源的思路挺好的,节省了许多工作,并且前后端有一个良好的规范,只是对于复杂的操作,是否还适用这就是另外一回事了,并且put和delete是不常用的http方式,引入不常用http方式带来的影响也没有亲自实践过)

另外
参考https://www.jianshu.com/p/65ab865a5e9f里所说的,restful风格有一下几个特点

1,统一接口
数据的元操作,即CRUD操作,分别对应于HTTP方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。

  • GET (SELECT):从服务器取出资源(一项或多项)。
  • POST (CREATE):在服务器新建一个资源。
  • PUT (UPDATE):在服务器更新资源(客户端提供完整资源数据)
  • PATCH (UPDATE):在服务器更新资源(客户端提供需要修改的资源数据)
  • DELETE (DELETE) :从服务器删除资源 2,URI 可以用一个URI指向资源,即每个URI都对应一个特定的资源。要获取这个资源,访问它的URI就可以,因此URI就成了每个资源的地址或识别符
    3,无状态
    所谓无状态的,即所有的资源,都可以通过URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。有状态和无状态的区别,举个简单的例子说明一下。如查询员工的工资,如果查询工资是需要登录系统,进入查询工资的页面,执行相关操作后,获取工资的多少,则这种情况是有状态的,因为查询工资的每一步操作都依赖于前一步操作,只要前置操作不成功,后续操作就无法执行;如果输入一个url即可得到指定员工的工资,则这种情况是无状态的,因为获取工资不依赖于其他资源或状态,且这种情况下,员工工资是一个资源,由一个url与之对应,可以通过HTTP中的GET方法得到资源,这是典型的RESTful风格。

因此,根据我对网上对restful文章及个人经验的总结,传统风格的接口设计不一定不如resetful风格,并且能解释较为复杂的接口逻辑,而restful对应于单一资源的增删查改,一旦涉及多个对象的操作,理解以及实施会较为麻烦许多,并且传统风格在本人的项目经验中一直也很好用,所以restful它的优势可能就是一统接口及简单的增删查改较为方便,感觉问这个的都是要做接口仔的情况啊!

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值