rest - 如何在您无法控制的 POST 方法中实现幂等性?
问题描述
我打算使用 HTTP POST 方法,默认情况下,它不是幂等的。由于我对此 API 没有任何控制权,如何保证我不会在服务器上创建重复条目的正确方法是什么?我只能想到一种方式:1.检查资源是否存在于服务器端。我想我只能在重试时进行此检查。2.如果没有,做一个HTTP POST来创建资源
有没有办法保证我不会创建重复的条目?
解决方案
如何保证我不会在服务器上创建重复条目的正确方法是什么?
如果没有消息处理程序的支持,您无法保证它。
有两个问题;首先-即使在幸福的道路上,在检查时间和更新时间之间也有一个窗口,在此期间,远程主机可能会发生变化。
其次,如果网络不可靠,消息可能会延迟。您发送创建新资源的请求,但该请求丢失。您检查,再试一次,并成功创建资源。现在您的原始请求重新出现并传送到服务器。
使用前检查可能会将重复的数量减少到可接受的容差,但不能保证准确一次。
推荐阅读
- c# - 将设置从 .bot 文件迁移到 appsettings 时如何修复机器人配置
- php - 归并排序时为什么会出现堆栈溢出?
- python-3.x - 我在源文件夹中有 100 个 xml 文件,我想使用 python 将这些文件移动到 3 个不同的目标文件夹
- python - 在 colab 中导入 gensim 包时出错
- hyperledger-fabric - 打包链码
- php - 如何将 Rate Yo 添加到数据库中
- mongodb - 何时从流中清除 mongodb 更改流事件
- unit-testing - 在 Kotlin (Corda) 中运行合同单元测试时出现 IllegalArgumentException
- javascript - Vue/Nuxt/Vuex - [NUXT:SSR] [ERROR] [vuex] 未知 getter
- linux - 安装 Docker Ubuntu 16.04 -- 找不到包