无法使用POST REST API更新couchbase文档

无法使用POST REST API更新couchbase文档,rest,couchbase,Rest,Couchbase,我想用RESTAPI更新couchbase文档 ilceabcd1233.corp.abcd.com:8091/pools/default/bucket/{bucketName}/docs/{documentId} 当我在postman中点击下面的CURL命令时,我收到200个OK响应代码,响应为空json数组:[] 卷曲: 当我通过以下方式检索此文档时: curl --location --request GET 'ilceabcd1233.corp.abcd.com:8091/pools/d

我想用RESTAPI更新couchbase文档

ilceabcd1233.corp.abcd.com:8091/pools/default/bucket/{bucketName}/docs/{documentId}

当我在postman中点击下面的CURL命令时,我收到200个OK响应代码,响应为空json数组:[]

卷曲:

当我通过以下方式检索此文档时:

curl --location --request GET 'ilceabcd1233.corp.abcd.com:8091/pools/default/buckets/{bucketName}/docs/{documentId}' \
--header 'Accept: application/json' \
--header 'Authorization: Basic QWRtaW5pc3RyYXRvcjpBZG1pbmlzdHJhdG9yff'
它答复说:

{
    "meta": {
        "id": "112176152456",
        "rev": "4-1637ac65ed7900000000000002000006",
        "att_reason": "invalid_json",
        "expiration": 0,
        "flags": 33554438
    },
    "base64": "",
    "xattrs": {}
}
在Couchbase web控制台上,我看到一条消息:

“二进制文档。Base64不可用”


有谁能帮我一下,我做错了什么?

这里的诀窍是这个API实际上不接受JSON。它正在寻找
应用程序/x-www-form-urlencoded
。否则,它将假定您正在存储一个二进制文档。实际上,您需要一个表单
,它本身包含JSON。例如:

curl --location --request POST 'http://localhost:8091/pools/default/buckets/demo/docs/doc1' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
--header 'Authorization: Basic QWRtaW5pc3RyYXRvcjpwYXNzd29yZA==' \
--data-urlencode 'value={"foo": "bar"}'

为了回应我的评论,这是一个未记录的、不受支持的端点,实际上只用于内部使用。建议改为使用SDK(例如)来读/写文档。REST API用于群集管理,而不是CRUD。

FYI,不支持通过REST API更新文档。该API基本上是为Couchbase UI而存在的。这就是为什么它不在文档中。我不是说不要使用它,而是要小心行事。它可能会改变,也可能会在未来的版本中消失。你让我成为一个好男人!非常感谢@Matthew!!!:)
curl --location --request POST 'http://localhost:8091/pools/default/buckets/demo/docs/doc1' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
--header 'Authorization: Basic QWRtaW5pc3RyYXRvcjpwYXNzd29yZA==' \
--data-urlencode 'value={"foo": "bar"}'