CouchDb-获取409的当前版本

CouchDb-获取409的当前版本,couchdb,Couchdb,是否有一些超级秘密nice标志与PUT对抗CouchDb一起使用,以便最终409(冲突)将在响应中包含当前的\u rev?在正文中或作为标题?这是不可能的。您可以做的最好的事情是在get之前使用ETag头执行get请求。如果版本仍然是最新的,您将返回304未修改状态。如果它已被修改,您将获得新版本。然而,在任何一种情况下,这都不能保证您在后续的PUT上不会遇到409冲突,因为文档可能在这段时间内被修改过。好吧,再做一次get并不能“感觉”正确,因为它(如您所说)可能无法保证任何事情,我已经做了一

是否有一些超级秘密nice标志与PUT对抗CouchDb一起使用,以便最终409(冲突)将在响应中包含当前的
\u rev
?在正文中或作为标题?

这是不可能的。您可以做的最好的事情是在get之前使用ETag头执行get请求。如果版本仍然是最新的,您将返回
304未修改
状态。如果它已被修改,您将获得新版本。然而,在任何一种情况下,这都不能保证您在后续的
PUT
上不会遇到
409冲突,因为文档可能在这段时间内被修改过。

好吧,再做一次
get
并不能“感觉”正确,因为它(如您所说)可能无法保证任何事情,我已经做了一个
GET
来获取文档。当然,我可以添加查看时间戳的逻辑,看看是否值得再做一次。不,我认为在这种情况下,让它变成409更正确。但是谢谢。顺便说一句,即使409响应为您提供了最新版本,这仍然不能保证下一个使用该版本的PUT请求不会创建另一个409…不,但它至少可以避免我进行HEAD或GET以获取最新已知版本。