在Couchbase中添加文档并缺少JSON正文

时间:2018-11-02 19:48:35

标签: rest postman couchbase

我正在尝试使用Couchbase REST API将文档添加到现有文档中。我只是在编写代码的同时在Postman中进行测试。

POST:

http://<ip>:8091/pools/default/buckets/<bucketname>/docs/testdoc1?rev=1

Headers:

Accept: application/json
Authorization : xxxxx

Body:

Raw JSON (application/json)
{
  "Name": "xxx",
  "Address": "yyy",
  "Phone number": "xxxx",
  "Badge": "yyy",
  "BadgeType": "xxx"
} 

当我在邮递员中发送上述邮件时,它正在添加此新文档。在长沙发文档/存储桶下,但在正文字段上显示为“二进制文档,base64不可用”

我什至从我的html代码中尝试过,但是json主体在couchbase端都没有收到。

<!DOCTYPE html>
<html>
<body>

<input type="submit" value="Start" onclick="submit()">

<script type="text/javascript">
var params = {
  "Name": "xxx",
  "Address": "yyy",
  "Phone number": "xxxx",
  "Badge": "yyy",
  "BadgeType": "xxx"
} 
    function submit() {
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4) {
                alert(xhr.response);
            }
        }
        xhr.open('post', 'http://<ip>:8091/pools/default/buckets/<buckname>/docs/testdochtml?rev=1', true);
        xhr.setRequestHeader('Content-Type', 'application/json');
        xhr.setRequestHeader('Accept', 'application/json');
        xhr.setRequestHeader('Authorization', 'Basic ' + 'xxxxxxx');

        xhr.send(JSON.stringify(params));
    }
</script>

<p>Click on the submit button.</p>

</body>
</html>

有人可以指导我为什么JSON无法以正确的方式出现吗?

1 个答案:

答案 0 :(得分:2)

首先,据我所知,不支持该端点,并且未记录该端点。如果您看到某处支持 ,请告诉我,因为我认为这需要纠正。您应该改用其中一种SDK(Java,.NET,Node等)。

话虽如此,我能够通过Postman使其正常运行。您不能只发送原始JSON作为文档。您需要POST编码的表单数据。该端点期望的值之一是“值”,其中包含编码的JSON文档。

这是我所做的一个示例(我称自己的存储桶为“ so”):

POST /pools/default/buckets/so/docs/testdoc2 HTTP/1.1
Host: localhost
cache-control: no-cache
Postman-Token: ba87ef4e-4bba-42b4-84da-ae775b26dbcb
value=%7B%0A%09%22Name%22%3A+%22xxx%22%2C%0A%09%22Address%22%3A+%22yyy%22%2C%0A%09%22Phone+number%22%3A+%22xxxx%22%2C%0A%09%22Badge%22%3A+%22yyy%22%2C%0A%09%22BadgeType%22%3A+%22xxx%22%0A%7D%0A

请注意,上面的值只是您问题中的URL编码的JSON(邮递员为我编码,并且邮递员也必须自己添加了缓存控制标头,因为我未指定):

enter image description here