MarkLogic - передает значение переменной через REST API в файл OPTIONS

Я использую файл параметров (загружается в базу данных модулей с помощью 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: (err: FOER0000) Недопустимое содержимое: недопустимые пути для извлечения данных документа: / envelope / instance / Contact / * [FullName = $ FullName] "}}


person Bhanu    schedule 28.08.2018    source источник


Ответы (2)


Вместо того, чтобы загружать параметры заранее, вы можете отправить параметры с запросом в запросе. Видеть:

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

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

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

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

person ehennum    schedule 28.08.2018

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

HTH!

person grtjn    schedule 29.08.2018