Создание источника данных вручную¶
Для создания нового источника данных необходимо выполнить следующие действия:
- В разделе Источники данных нажать кнопку
и выбрать действие «Добавить новый источник данных». - В открывшейся форме создания источника данных заполнить поля.
Поле Код заполняется автоматически после регистрации источника данных в Системе и недоступно для редактирования. В дальнейшем по коду источник данных можно использовать в динамических приложениях.
Поля Наименование и Описание заполняются вручную.
Поля Тип возвращаемых данных, Тип источника данных, Имя сервиса заполняются выбором значений из выпадающих списков. В поле Имя сервиса для выбора доступны статические сервисы Системы. Так, например, можно выбрать статический сервис «Папки» для отображения конкретных папок в коллекции и работы с ними в динамическом приложении. Для этого требуется выбрать сервис «dh-folders-service», в поле Класс объекта выбрать нужный класс папки из списка существующих в Системе, а в HTTP запросе прописать метод на получение папок. Если это запрос на получение конкретной папки, то в запросе должен быть указан ее уникальный идентификатор. Если это запрос на получение корневых папок, то в запросе должны быть указаны параметры:
- page;
- size;
- sort;
- format=CONTENT.
Тумблер Защита от обновления позволяет активировать дополнительную защиту для создаваемого источника данных, которая срабатывает при импорте сущностей одного типа. Если среди импортируемых сущностей есть источник данных с таким же кодом, что и у текущего, то активный тумблер заблокирует импорт сущности и существующая не будет перезаписана.
Если в поле Тип источника данных выбрано значение «Внутренний запрос», то дополнительно необходимо выбрать один из сервисов Системы, а также класс объекта и тип эндпоинта в соответствующих полях. Данные поля будут скрыты, если в поле Тип источника данных выбраны значения «Внешний запрос» или «Локальные данные (JSON)». Для значения «Конвейер» необходимо добавить перечень шагов по нажатию кнопки [Добавить шаг]. По каждому шагу необходимо заполнить поля, состав которых может меняться в зависимости от выбранного типа действия.
Наименование каждого шага Системой заполняется автоматически с указанием порядкового номера, но доступно для редактирования пользователем.
В качестве примера можно рассмотреть конвейер, в процессе активации которого:
- на первом шаге приходит основной документ и помещается в выходную переменную «documentMain»;
- на втором шаге, используя идентификатор основного документа, приходит вложенный документ и помещается в выходную переменную «documentsIncluded»;
- на третьем шаге, используя JSON Path, из входной переменной «documentsIncluded» извлекаются идентификаторы «fileId» и помещаются в выходную переменную «documentsIncludedFileIds».
Протестировать добавленный конвейер можно в форме создания источника данных по нажатию кнопки [Протестировать конвейер].
Описание типов шагов конвейеров, доступных для использования, приведено в п. Типы действий конвейера.
После заполнения поля Имя сервиса поле Класс объекта становится доступным для заполнения. В выпадающем списке отображаются значения, предусмотренные для выбранного сервиса. Так, например, для сервиса папок доступны для выбора классы объекта «Папка», которые реализуют вывод дерева папок в приложении. В дальнейшем при изменении сервиса значение в поле Класс объекта сбрасывается и требует повторного заполнения. При внесении изменений в поля Имя Сервиса, Класс объекта, Тип эндпоинта блок HTTP запрос сохраняет свое текущее состояние.
Активация тумблера Множественный выбор класса объекта позволяет в поле Класс объекта выбирать для источника данных сразу несколько классов. Делать это можно путем выбора из списка, который открывается нажатием ЛКМ на поле или путем ввода наименования класса вручную и выбиром из совпадений. Все выбранные классы будут отображаться в поле.
Также тумблер Множественный выбор класса объекта можно активировать в окне фильтрации коллекции при условии, если для нее выбран источник данных для поиска с множественными классами.
В поле Тип возвращаемых данных необходимо выбрать для каких объектов будет использоваться текущий источник данных – «Объект» или «Коллекция». Под значением «Объект» подразумевается любая форма приложения. В дальнейшей работе при создании форм и коллекций необходимо выбирать соответствующий им источник данных.
В блоке HTTP запрос необходимо указать структуру запроса для автоматического получения необходимых данных. В первую очередь необходимо выбрать метод из выпадающего списка. Возможные справочные значения: «GET», «POST», «PUT», «DELETE», «PATCH». По умолчанию: «GET».
Поле URL включает в себя адрес сервера, сервис посредник, наименование сервиса, класс объекта и параметры. Автоматическое заполнение поля URL активируется по нажатию кнопки
справа от поля Тип эндпоинта. URL заполняется в соответствии с выбранным типом эндпоинта. В иных случаях URL требуется указать вручную.
Параметры на одноименной вкладке вводятся через нотацию @QUERY.
На вкладке Авторизация в блоке HTTP запрос необходимо выбрать из справочника тип авторизации, после чего через нотацию $HEADERS ввести авторизационные данные. Возможные справочные значения: «No Auth», «Bearer Token», «Basic Auth». По умолчанию: «Bearer Token».
На вкладку Заголовки автоматически переносятся недоступные для редактирования данные из вкладки Авторизация, если был выбран тип авторизации и на вкладке Авторизация заполнены поля, соответствующие данному типу.
На вкладке Тело запроса необходимо выбрать один из режимов:
- «none» – невозможно указать тело запроса;
- «raw» – появляется блок Тело запроса с возможностью выбора формата данных: «JSON» или «TEXT».
При указании переменных в теле запроса необходимо следовать основным правилам Java конвенции именования переменных:
- Наименования могут содержать буквы, цифры, символы подчеркивания и знаки $.
- Наименования могут начинаться только со строчной буквы, со знака $ или с нижнего подчеркивания.
- Внутренние слова в переменных рекомендуется начинать с заглавных букв.
- Наименования не могут содержать пробелы.
- Наименования чувствительны к регистру («myVar» и «myvar» – разные переменные).
- Зарезервированные слова (например, ключевые слова Java, такие как «int» или «boolean») не могут использоваться в качестве имен.
Подробнее с конвенцией именования переменных можно ознакомиться по ссылке https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html.
Активация тумблера Использовать пагинацию на стороне сервера помогает оптимизировать загрузку и отображение большого количества данных. Например, большой список папок в коллекции будет подгружаться частями последовательно при прокрутке списка вниз.
3. После заполнения полей нажать кнопку
.
Появится уведомление, информирующее об успешном сохранении источника данных.
После сохранения в карточке источника данных для HTTP запроса появится кнопка [SEND], нажатие которой позволяет протестировать данный запрос. После нажатия кнопки [SEND] вернется ответ на заданный запрос.
При наличии переменных перед отправкой запроса необходимо указать их значения в отдельном окне после нажатия кнопки [SEND].
Тестируется при этом не сам URL, а источник данных.
Если форма создания источника данных не была сохранена или в карточке уже созданного источника данных есть несохраненные изменения, кнопка [SEND] отображаться не будет.
Созданный источник данных отображается в рабочем поле раздела Источники данных и доступен для использования при добавлении форм и коллекций внутри приложений.











