我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

最近在看RESTful相关资料的时候,一个新的名词叫做"幂等性"出现在视野中。那么,啥叫幂等性呢?在restful接口设计中,由如何理解呢?这就是本文要讨论的问题。

苏南大叔:如何理解restful接口的幂等性和安全性定义? - api接口幂等性
如何理解restful接口的幂等性和安全性定义?(图1-1)

大家好,这里是苏南大叔的网络自留地,想写点啥就写点啥。本文写个有点悬乎的名词,叫“幂等性”。测试环境:呃,不用啥环境。本文就是阐述个定义。

基本定义

幂等性的定义,就是对于同一个请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。符合幂等性,并不是说返回的数据永远都是一致的。比如:某个符合幂等性的接口,可以使用get方法来请求,里面有个数据是当前时间。那么,虽然返回的数据每次都不一样。但是对于这个资源来说,每次都是一致的,返回的都是时间。所以是符合幂等性。

安全性定义,指的是对资源是否进行修改。

restful方法对比

对于postputpatchdelete方法,理论上来说,有的符合幂等性,有的不符合幂等性。那么,到有判断标准就是对这个接口资源是否有影响。这个比较玄学,直接公布标准答案。

  • getrestful里面是请求资源,多次调用结果一致,符合幂等性。
  • postrestful里面是新建资源,所以有影响,不符合幂等性。
  • putrestful里面是更新全部资源,多次调用结果一致,符合幂等性。
  • patchrestful里面是更新部分资源,多次调用可能会导致某资源的某属性变化,不符合幂等性。
  • deleterestful里面是删除资源,多次调用结果一致,符合幂等性。

总结如下:

method描述多次调用幂等性安全性
get请求资源资源一致符合幂等安全
post新建资源资源不一致不符合幂等不安全
put跟新全部资源资源一致符合幂等不安全
patch更新部分资源资源不一致不符合幂等不安全
delete删除资源资源一致符合幂等不安全
options获取服务器信息资源一致符合幂等安全
head获取资源头信息资源一致符合幂等安全

相关文章

总结

这些资源请求的办法是不是幂等,前提是建立在restful这个框架上的。因为大多数情况下,接口并不是安装这个restful的方案定制的,getpost方法横行天下。其它的方法,几乎就没用过。所以,是不是幂等。也就是了解一下罢了。这个东西没有绝对性。面试的时候也许会用得到的一个文章罢了,和实际脱节比较严重。没有啥太现实的意义。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   restful    api