【问题标题】:Unable to update couchbase document using POST REST API无法使用 POST REST API 更新 couchbase 文档
【发布时间】:2020-09-24 10:05:26
【问题描述】:

我想用 REST API 更新一个 couchbase 文档

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

当我在邮递员中点击 CURL 命令时,我收到 200 OK 响应代码,响应为空白 json 数组:[]

卷曲:

curl --location --request POST 'ilceabcd1233.corp.abcd.com:8091/pools/default/buckets/{bucketName}/docs/{documentId}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic QWRtaW5pc3RyYXRvcjpBZG1pbmlzdHJhdG9yff' \
--data-raw '{"name": "Nisarg", "age": 50}'

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

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 网络控制台上,我看到消息:

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

谁能帮忙,我做错了什么?

【问题讨论】:

  • 仅供参考,不支持通过 REST API 更新文档。该 API 基本上是供 Couchbase UI 使用的。这就是为什么它不在文档中的原因。我不是说不要使用它,但要谨慎行事。它可能会在未来的版本中改变或消失。

标签: rest couchbase


【解决方案1】:

这里的诀窍是这个 API 实际上并不接受 JSON。它正在寻找application/x-www-form-urlencoded。否则它将假定您正在存储二进制文档。您实际上需要一个表单value,它本身包含 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(例如 the Couchbase Java SDK)来读取/写入文档。 REST API 旨在用于集群管理,而不是用于 CRUD。

【讨论】:

  • 你成就了我的一天!很大的帮助:) 非常感谢@Matthew !!! :)
猜你喜欢
  • 2016-01-25
  • 2014-08-23
  • 1970-01-01
  • 1970-01-01
  • 2020-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多