首页 > 解决方案 > 如何在您无法控制的 POST 方法中实现幂等性?

问题描述

我打算使用 HTTP POST 方法,默认情况下,它不是幂等的。由于我对此 API 没有任何控制权,如何保证我不会在服务器上创建重复条目的正确方法是什么?我只能想到一种方式:1.检查资源是否存在于服务器端。我想我只能在重试时进行此检查。2.如果没有,做一个HTTP POST来创建资源

有没有办法保证我不会创建重复的条目?

标签: restapihttp-postidempotent

解决方案


如何保证我不会在服务器上创建重复条目的正确方法是什么?

如果没有消息处理程序的支持,您无法保证它。

有两个问题;首先-即使在幸福的道路上,在检查时间和更新时间之间也有一个窗口,在此期间,远程主机可能会发生变化。

其次,如果网络不可靠,消息可能会延迟。您发送创建新资源的请求,但该请求丢失。您检查,再试一次,并成功创建资源。现在您的原始请求重新出现并传送到服务器。

使用前检查可能会将重复的数量减少到可接受的容差,但不能保证准确一次。


推荐阅读