MarkLogic - передать значение переменной через REST API в файл OPTIONS. - PullRequest
0 голосов
/ 28 августа 2018

Я использую файл опций (загружается в БД модулей с помощью PUT / v1 / config / query). Затем я делаю GET / v1 / поиск с ?options=module-name&q=FullName:"John Smith". Я пытаюсь передать FullName, который предоставляется в качестве параметра через REST API, для ограничения содержимого вывода.

Ниже код в файле опций работает нормально,

<extract-document-data selected="include">
    <extract-path>/envelope/instance/Contact/*[FullName="John Smith"] 
    </extract-path>
</extract-document-data>

Как передать значение FullName в качестве параметра со значением, полученным из параметров REST API вместо жесткого кодирования? Что-то вроде

<extract-document-data selected="include">
    <extract-path>/envelope/instance/Contact/*[FullName=$FullName] 
    </extract-path>
</extract-document-data>

Я пробовал приведенный выше синтаксис, но получал ошибку при развертывании (PUT /v1/config/query).

{"errorResponse": { «statusCode»: 400, "status": "Bad Request", "messageCode": "RESTAPI-INVALIDCONTENT", "message": "RESTAPI-INVALIDCONTENT: (ошибка: FOER0000) Недопустимое содержимое: неверные пути для извлечения данных документа: / envelope / instance / Contact / * [FullName = $ FullName]" }}

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

В качестве альтернативы, вы можете просто извлечь все полные имена и либо отфильтровать на стороне клиента, либо написать преобразование REST, которое принимает параметр trans: для выполнения фильтрации на стороне сервера.

НТН!

0 голосов
/ 28 августа 2018

Вместо предварительной загрузки параметров можно отправить параметры с запросом в запросе. См:

http://docs.marklogic.com/guide/rest-dev/search#id_69918

Перед отправкой запроса клиент может подставить фактическое полное имя в значение пути извлечения.

Запрос может предоставить строку запроса в элементе qtext.

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

...