У меня есть база данных marklogic со следующим документом JSON с именем urlList.json
{
"test": {
"ip": "10.10.10.10",
"fqdn": "www.test.test"
}
}
Я пытаюсь добавить в тестовый объект с помощью API marklogic rest с помощью patch. Я использую Node с модулем запроса-обещания, вот код
var options = {
method: 'PATCH',
url: 'https://test:8000/v1/documents',
qs: { database: databaseName, uri: 'urlList.json' },
headers:
{
'Content-Type': 'application/json',
Accept: 'application/json'
},
strictSSL: false,
auth: {
user: userName,
pass: password,
sendImmediately: false
},
body: JSON.stringify({
"patch": [
{
"insert": {
"context": "/test/",
"position": "last-child",
"content": { "test": "test"}
}
}
]
})
};
request(options)
.then(results => {
return resolve(results);
})
.catch(err => {
return reject(err);
})
Желаемый результат при запуске -
{
"test": {
"ip": "10.10.10.10",
"fqdn": "www.test.test",
"test": "test"
}
}
Я получаю следующую ошибку каждый раз, когда запускаю его
"400 - "{\"errorResponse\":{\"statusCode\":400, \"status\":\"Bad
Request\", \"messageCode\":\"RESTAPI-INVALIDREQ\",
\"message\":\"RESTAPI-INVALIDREQ: (err:FOER0000) Invalid request:
reason: invalid patch for uri urlList.json: invalid path: /test/\"}}""
Вот отправленное тело
"{"patch":[{"insert":{"context":"/test/","position":"last-
child","content":{"test":"test"}}}]}"





Путь должен выбирать узел. По этой причине путь не может заканчиваться разделителем. Это то, что пытается передать сообщение.
Работает ли с путем /test?
Кстати, MarkLogic предоставляет API для Node.js с поддержкой обещаний. С этим может быть проще работать.
Надеясь, что это поможет,