一、POSTPUT的区别

两种请求最大的不同之处就在于是否满足幂等性

幂等性(idempotent、idempotence):幂等是一个数学与计算机学概念,常见于抽象代数中。在编程中一个幂等操作的特点是执行多次或1次,其影响是相同的。

比如:
GET:客户端请求多次或1次,对请求的资源产生的影响是相同;
DELETE:删除多次或1次,其删除的数据范围都是相同的,影响是相同的;
PUT:将A值更新为B值,执行多次其最终结果仍是B值;
用一张图了解PUT和POST的区别

二、RESTful API设计中POSTPUT的使用场景

在开发中如果不遵守RESTful API 的设计规范会把POST的职能由“新增”,扩展到支持“新增、更新、删除”。日常开发中执行CRUD时我们应该遵循以下规则:

请求类型 描述
GET 读取(幂等)
POST 新增
PUT 更新(幂等)
PATCH 更新,通常是部分更新
DELETE 删除(幂等)
三、如何设计符合幂等规范的API?

使用GET与PUT的幂等性设计一个支付订单款的流程:

ClientServercreate_ticket()第1次创建订单return ticket_id_1网络波动返回失败create_ticket()第2次创建订单return ticket_id_2订单创建成功idempotent_withdraw(ticket_id_2, amount)total -= amount扣款OK网络波动返回失败idempotent_withdraw(ticket_id_2, amount)重复支付账单不扣款OKClientServer

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-11
  • 2021-08-14
  • 2021-06-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2021-12-27
  • 2021-08-29
相关资源
相似解决方案