N. *_*. P 5 networking post web-services duplicates data-consistency
我发送 POST 请求来创建一个对象。该对象已在服务器上成功创建,但我无法收到响应(丢弃在某处),因此我尝试再次发送 POST 请求(一次又一次)。结果是服务器端有很多重复的对象。
处理这个问题的官方方法是什么?我认为这是一个很常见的问题,但我不知道它的确切名称,所以无法谷歌它。谢谢。
在 REST 术语中,即如何POST调用用于创建对象(以及PUT修改、DELETE删除和GET检索)的接口,该POST操作被归因于不“安全”和非“幂等”,因为每个操作的第二个操作其他类型的请愿对物品的收集没有影响。
我怀疑是否有“官方”方法来处理这个问题,但可能有一些设计模式来处理它。例如,这两种替代方案可以在某些场景下解决此问题:
POST在发出请求之前,通常是在客户端加载带有输入表单的页面时,向每个客户端发出一次性使用令牌。第一个POST创建一个对象并将令牌标记为已使用。第二个POST将看到令牌已被使用,您可以回答“是,是,好的,好的!” 错误或成功消息。有用的链接,您可以在其中阅读有关 REST 的更多信息。