MarkLogic: вопрос о дизайне параметров запроса и преобразования - PullRequest
0 голосов
/ 22 ноября 2018

Наша команда создает несколько пользовательских REST API (v1 / resources / ...) и представляет их в качестве корпоративных сервисов другим заинтересованным сторонам, которым не нужно ничего знать о MarkLogic.Однако наша команда отвечает за создание, улучшение и поддержку серверных сценариев (мы используем JavaScript) в MarkLogic.

При создании пользовательских API REST наша текущая разработка, отвечающая требованиям поиска, должна начинаться сПараметры запроса, включают в себя как можно больше требований в параметрах запроса и для любых требований, которые не могут быть удовлетворены параметрами запроса (например, сортировка в документе, сложный XPath, объединение с другими документами и т. Д.), Код в программе расширения Java Script(технически не преобразование, но концептуально похожее на преобразование).

Из-за ограничений в параметрах запросов все большая часть нашей логики направляется на программы расширения Javascript, а параметры запросов кажутся просто дополнительными затратами на обслуживание.Нужно ли нам поддерживать файл параметров запроса для каждого расширения REST, в то время как преобразования предлагают гораздо более мощную функциональность?Могу ли я избавиться от параметров Query и просто использовать серверный код Java Script (концептуально, похожий на преобразования)?Первоначально мы думали, что параметры запросов основаны на конфигурации, и, следовательно, изменение параметров запросов - это не совсем изменение кода, однако, исходя из нашего опыта, мы поняли, что изменение параметров запросов также включает развертывание, регрессионное тестирование и все другие действия.Поэтому в нашем случае я не вижу каких-либо особых преимуществ вариантов запросов (создание пользовательских API REST).

Гуру дизайна, пожалуйста, предложите!

1 Ответ

0 голосов
/ 22 ноября 2018

На эти вопросы сложно ответить, не зная всей ситуации.Вы говорите о пользовательских конечных точках REST, но для этого используете расширения REST на встроенном API REST.Вы используете что-нибудь еще из встроенного REST API?Вы используете параметры поиска, но не используете их для / v1 / search.Не могли бы вы сделать то же самое с / v1 / search с этими параметрами, но с дополнительным REST Transform сверху?И вы говорите о большом количестве искажения данных, происходящем на уровне поддокументов.Рассматривали ли вы выполнение части этой обработки заранее или организовали свои данные иначе, чтобы обработка во время запроса стала намного проще?

Множество вопросов и много возможностей.Трудно дать однозначный ответ на такой открытый вопрос.Я надеюсь, что все же дал пищу для размышлений.

HTH!

...