"RESTAPI-INVALIDREQ: (ошибка: FOER0000) Недопустимый запрос: причина: неверный патч для uri urlList.json: неверный путь: / test / - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть база данных 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"}}}]}"

1 Ответ

0 голосов
/ 25 апреля 2018

Путь должен выбрать узел. По этой причине путь не может заканчиваться разделителем. Это то, что сообщение пытается передать.

Работает ли с путем /test?

Кстати, MarkLogic предоставляет API-интерфейс Node.js с поддержкой обещаний. С этим проще работать.

Надеясь, что помогает,

...