rest理论基础

架构性特性:

  1. 性能(硬件和软件投入)
  2. 伸缩性(规模)
  3. 简化统一接口(通信协议  http    )
  4. 组件修改
  5. 通信透明
  6. 组件可以执行
  7. 可靠性

    幂等

    PUT

    初始状态:0

    修改状态:1*N

    最终状态:1

    PUT

    初始状态:1

    修改状态:0*N

    最终状态:0

     

     

    非幂等

    Post

    初始状态:1

    修改状态:1+1=2

    N次修改:1+N=N+1

     

    幂等/非幂等 依赖于服务端实现,这种方式是一种契约

 

白话文(

https://www.cnblogs.com/gc65/p/10066804.html

概念解释

       幂等性

              http幂等方法,是指无论调用多少次都不会产生不同副作用(数据变更)的http方法

              简单解释:

                     重复发送同一个请求多次,结果同发送一次

       操作示例:

              GET /tickets # 获取ticket列表

              GET /tickets/12 # 查看某个具体的ticket

              POST /tickets # 新建一个ticket

              PUT /tickets/12 # 更新ticket 12

              PATCH /tickets/12 # 更新ticket 12

              DELETE /tickets/12 # 删除ticekt 12

       HTTP GET(幂等)

              get用于获取资源,不管调用多少次接口,返回结果保持不变,不会改变资源。如:

              第一次调用 GET /tickets , 后台返回tickets列表(我想看下还有多少张票)

              第二次调用 GET /tickets , 返回同样的数据(我想再看一遍tickets信息)

              ps: 我多看一眼,总不会把你的票看没了吧,我看或者不看你就在那里

 

       HTTP POST(非幂等)

              post用于创建资源,每次调用都会创建一个新的资源,如

              第一次调用 POST /tickets ,后台产生 /tickets/1 这么一个资源(我要新增一张票)

              第二次调用 POST /tickets , 后台产生 /tickets/2 这么一个资源(我要再新增一张票)

              ps:我是生产车票的,所以我不会产生重复的车票(id至少不一样)

       HTTP PUT(幂等)

              put用于更新资源,没有的话则执行创建操作。如:

              第一次调用 PUT /tickets/11 , 后台创建 /tickets/11 (帮我看下11号票在不在,在的话更新下状态,不在的话创建下)

              第二次调用 PUT /tickets/11 , 后台更新 /tickets/11 (帮我看下11号票在不在,在的话更新下状态,不在的话创建下)

              由于两次请求携带的数据是一样的,所以不论请求多少次,最终的结果都是后台存在这么一个资源(创建或更新)

              ps:我有强迫症加健忘症,同样的事我可能会让你干很多遍,你给我小心处理哈,我可不想看到不同的结果

       HTTP DELETE(幂等)

              delete用于删除资源,会将资源从后台删除。如:

              第一次调用 DELETE /tickets/11 , 后台删除 /tickets/11对应的数据信息 (11号票我不要了,帮我删除下吧)

              第二次调用 DELETE /tickets/11 , 后台判断 /tickets/11不存在,无操作(11号票我不记得有没有删除,帮我删除下吧)

              ps:我也有健忘症啊,同样的事我也可能会干很多遍,你忽略就好了,给我个眼神(返回码),我就知道了

       备注:

              /tickets/12 这种叫做uri,一个uri代表一个资源,本例中代表一张票(实际可能对应数据库中的一行信息),

              所以上述描述的创建,删除,更新资源,都是指根据uri及其所附带信息实际操作uri对应的后台资源。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值