幂等性是一个老生常谈的话题,但是往往容易被大家忽略
- 面试时当问到 POST 请求和 GET 请求有什么区别的时候,很多人往往可以巴拉巴拉说一大堆,但是往往容易忘记了在 Restful API 中 GET是幂等的而 POST 不是
- 而这被大家忽略的一点往往会造成一些很大的影响
- 比如我们的一个提交订单的API,如果我们不做幂等性检查,就可以导致数据库同时生成两份订单,而这在线上是一个十分致命的问题
- 为了避免出现幂等性的问题,使用在开发 Restful API 请一定要注意幂等性
动词 | 描述 | 是否幂等 |
---|---|---|
GET | 获取资源,单个或多个 | 是 |
POST | 创建资源 | 否 |
PUT | 更新资源,客户端提供完整的资源数据 | 是 |
PATCH | 更新资源,客户端提供部分的资源数据 | 否 |
DELETE | 删除资源 | 是 |