5

我尝试测试 couchDB 的 _revs_diff api 以获取文档修订。这是我使用的命令

curl -X POST http://******:******@localhost:5984/grocery-sync/_revs_diff -H "Content-type:application/json" 

结果是

{"error":"unknown_error","reason":"badarg"}

有谁知道这样做的原因?

4

1 回答 1

4

根据CouchDB wiki page_revs_diff如果给定文档的修订无效,将返回一个值。没有给出使用curl的例子。

查看这个发布问题的邮件列表似乎是您需要包含文档和修订信息,如下所示:

$ curl -X POST -H "Content-type:application/json" \
   http://*:*@localhost:5984/grocery-sync/_revs_diff \
   -d '{"0d63eac0ca9a37daa062b23853a4cf4d":["1-e9e4e9c76323a267ff4f780f9f979b9f", "12-3286453e55eb2c401bc194670075f942"]}'

其中字典键 ( 0d63...cf4d) 是文档 ID,数组是修订 ID。在此示例中,两个修订版 (1-...12-...) 都存在于数据库中,因此响应为

{}

如果我提供缺少的修订 ID(我发明的):

$ curl -X POST -H "Content-type:application/json"  \
  http://*:*@localhost:5984/grocery-sync/_revs_diff \
  -d '{"0d63eac0ca9a37daa062b23853a4cf4d":["1-abcdef"]}'

回应是

{"0d63eac0ca9a37daa062b23853a4cf4d":{"missing":["1-abcdef"]}}
于 2012-11-01T14:35:10.083 回答