2

考虑以下构建 CouchDB 数据库并添加文档的 PUT 请求

curl -X PUT http://localhost:5984/mydb

响应:{"ok":true}

curl -X PUT http://localhost:5984/mydb/mydoc -d '{"name":"John", "email":"john@example.com"}'

响应:{"ok":true,"id":"mydoc","re​​v":"1-8c497db1c5b38cb65981a2c83b349d83"}

好的,我们有一份文件。现在我想删除这个文件。我尝试:

curl -X DELETE http://localhost:5984/mydb/mydoc -d '{"_rev":"1-8c497db1c5b38cb65981a2c83b349d83}'

响应:{"error":"conflict","re​​ason":"文档更新冲突。"}

唔。我不明白为什么这不起作用,所以我试试这个:

curl -X DELETE http://localhost:5984/mydb/mydoc?rev=1-8c497db1c5b38cb65981a2c83b349d83

响应:{"ok":true,"id":"mydoc","re​​v":"2-e8b8b0632384aae62338c57e1826ea81"}

这行得通……但为什么呢?第一个有什么问题?任何帮助表示赞赏。

4

1 回答 1

1

DELETErequests 共享GET语义和消息体被忽略,因此您需要使用查询参数来传递修订令牌与请求。

于 2013-02-04T02:06:43.760 回答