我一直在 REST API 中使用 POST 来创建对象。每隔一段时间,服务器会创建对象,但客户端会在收到201 Created
响应之前断开连接。客户端只看到一个失败的 POST 请求,稍后再试一次,服务器愉快地创建了一个重复的对象......
其他人一定有这个问题,对吧?但我在谷歌周围搜索,每个人似乎都忽略了它。
我有 2 个解决方案:
A) 改用 PUT,并在客户端上创建 (GU)ID。
B) 为客户端上创建的所有对象添加一个 GUID,并让服务器强制执行它们的UNIQUE
-ness。
A 与现有框架不太匹配,而 B 感觉就像一个 hack。在现实世界中,其他人如何解决这个问题?
编辑:
使用 Backbone.js,您可以在客户端上创建对象时将 GUID 设置为 id。保存后,Backbone 将执行 PUT 请求。让您的 REST 后端处理 PUT 到不存在的 id,然后您就设置好了。