rest - 使用 REST 避免重复的 POST

标签 rest post atomic

我一直在 REST API 中使用 POST 来创建对象。每隔一段时间,服务器就会创建该对象,但客户端会在收到 201 Created 响应之前断开连接。客户端只看到失败的 POST 请求,稍后再试,服务器愉快地创建了一个重复的对象...

其他人肯定也遇到过这个问题吧?但我用谷歌搜索了一下,每个人似乎都忽略了它。

我有两个解决方案:

A) 使用 PUT 代替,并在客户端上创建 (GU)ID。

B) 将 GUID 添加到客户端上创建的所有对象,并让服务器强制执行其UNIQUE 特性。

A 与现有框架不太匹配,而 B 感觉像是一个 hack。在现实世界中,其他人如何解决这个问题?

编辑:

使用 Backbone.js,您可以在客户端创建对象时设置 GUID 作为 id。保存后,Backbone 将执行 PUT 请求。将您的 REST 后端句柄 PUT 到不存在的 id,然后就完成了。

最佳答案

我总是使用 B——由于服务器端出现任何问题而检测重复项。

关于rest - 使用 REST 避免重复的 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15159274/

相关文章:

rest - 在 Netty 上设计 RESTful 应用程序

javascript - 发布时出现错误的表单数据名称

javascript - 发布后更新 angularJS 中的 $scope 属性

javascript - 对网页进行实时更新时跟踪更改的方法

c++ - 原子 vector 的初始化

c++ - std::condition_variable 内存写入可见性

rest - 当记录处于不适当状态时返回什么 HTTP 代码?

javascript - Node.js POST API 和请求体的解析

泰国 REST API 直销信用卡

vba - 在 VBA 中将图片上传到 file.io (HTTP Post)