Создание источника данных вручную

Для создания нового источника данных необходимо выполнить следующие действия:

  1. В разделе Источники данных нажать кнопку img и выбрать действие «Добавить новый источник данных».
  2. В открывшейся форме создания источника данных заполнить поля.

img

Поле Код заполняется автоматически после регистрации источника данных в Системе и недоступно для редактирования. В дальнейшем по коду источник данных можно использовать в динамических приложениях.

Поля Наименование и Описание заполняются вручную.

Поля Тип возвращаемых данных, Тип источника данных, Имя сервиса заполняются выбором значений из выпадающих списков. В поле Имя сервиса для выбора доступны статические сервисы Системы. Так, например, можно выбрать статический сервис «Папки» для отображения конкретных папок в коллекции и работы с ними в динамическом приложении. Для этого требуется выбрать сервис «dh-folders-service», в поле Класс объекта выбрать нужный класс папки из списка существующих в Системе, а в HTTP запросе прописать метод на получение папок. Если это запрос на получение конкретной папки, то в запросе должен быть указан ее уникальный идентификатор. Если это запрос на получение корневых папок, то в запросе должны быть указаны параметры:

  • page;
  • size;
  • sort;
  • format=CONTENT.

img

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

Если в поле Тип источника данных выбрано значение «Внутренний запрос», то дополнительно необходимо выбрать один из сервисов Системы, а также класс объекта и тип эндпоинта в соответствующих полях. Данные поля будут скрыты, если в поле Тип источника данных выбраны значения «Внешний запрос» или «Локальные данные (JSON)». Для значения «Конвейер» необходимо добавить перечень шагов по нажатию кнопки [Добавить шаг]. По каждому шагу необходимо заполнить поля, состав которых может меняться в зависимости от выбранного типа действия.

Наименование каждого шага Системой заполняется автоматически с указанием порядкового номера, но доступно для редактирования пользователем.

В качестве примера можно рассмотреть конвейер, в процессе активации которого:

  • на первом шаге приходит основной документ и помещается в выходную переменную «documentMain»;

img

  • на втором шаге, используя идентификатор основного документа, приходит вложенный документ и помещается в выходную переменную «documentsIncluded»;

img

  • на третьем шаге, используя JSON Path, из входной переменной «documentsIncluded» извлекаются идентификаторы «fileId» и помещаются в выходную переменную «documentsIncludedFileIds».

img

Протестировать добавленный конвейер можно в форме создания источника данных по нажатию кнопки [Протестировать конвейер].

Описание типов шагов конвейеров, доступных для использования, приведено в п. Типы действий конвейера.

После заполнения поля Имя сервиса поле Класс объекта становится доступным для заполнения. В выпадающем списке отображаются значения, предусмотренные для выбранного сервиса. Так, например, для сервиса папок доступны для выбора классы объекта «Папка», которые реализуют вывод дерева папок в приложении. В дальнейшем при изменении сервиса значение в поле Класс объекта сбрасывается и требует повторного заполнения. При внесении изменений в поля Имя Сервиса, Класс объекта, Тип эндпоинта блок HTTP запрос сохраняет свое текущее состояние.

Активация тумблера Множественный выбор класса объекта позволяет в поле Класс объекта выбирать для источника данных сразу несколько классов. Делать это можно путем выбора из списка, который открывается нажатием ЛКМ на поле или путем ввода наименования класса вручную и выбиром из совпадений. Все выбранные классы будут отображаться в поле.

img

Также тумблер Множественный выбор класса объекта можно активировать в окне фильтрации коллекции при условии, если для нее выбран источник данных для поиска с множественными классами.

img

В поле Тип возвращаемых данных необходимо выбрать для каких объектов будет использоваться текущий источник данных – «Объект» или «Коллекция». Под значением «Объект» подразумевается любая форма приложения. В дальнейшей работе при создании форм и коллекций необходимо выбирать соответствующий им источник данных.

В блоке HTTP запрос необходимо указать структуру запроса для автоматического получения необходимых данных. В первую очередь необходимо выбрать метод из выпадающего списка. Возможные справочные значения: «GET», «POST», «PUT», «DELETE», «PATCH». По умолчанию: «GET».

img

Поле URL включает в себя адрес сервера, сервис посредник, наименование сервиса, класс объекта и параметры. Автоматическое заполнение поля URL активируется по нажатию кнопки справа от поля Тип эндпоинта. URL заполняется в соответствии с выбранным типом эндпоинта. В иных случаях URL требуется указать вручную.

Параметры на одноименной вкладке вводятся через нотацию @QUERY.

На вкладке Авторизация в блоке HTTP запрос необходимо выбрать из справочника тип авторизации, после чего через нотацию $HEADERS ввести авторизационные данные. Возможные справочные значения: «No Auth», «Bearer Token», «Basic Auth». По умолчанию: «Bearer Token».

На вкладку Заголовки автоматически переносятся недоступные для редактирования данные из вкладки Авторизация, если был выбран тип авторизации и на вкладке Авторизация заполнены поля, соответствующие данному типу.

На вкладке Тело запроса необходимо выбрать один из режимов:

  • «none» – невозможно указать тело запроса;
  • «raw» – появляется блок Тело запроса с возможностью выбора формата данных: «JSON» или «TEXT».

img

При указании переменных в теле запроса необходимо следовать основным правилам Java конвенции именования переменных:

  • Наименования могут содержать буквы, цифры, символы подчеркивания и знаки $.
  • Наименования могут начинаться только со строчной буквы, со знака $ или с нижнего подчеркивания.
  • Внутренние слова в переменных рекомендуется начинать с заглавных букв.
  • Наименования не могут содержать пробелы.
  • Наименования чувствительны к регистру («myVar» и «myvar» – разные переменные).
  • Зарезервированные слова (например, ключевые слова Java, такие как «int» или «boolean») не могут использоваться в качестве имен.

Подробнее с конвенцией именования переменных можно ознакомиться по ссылке https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html.

Активация тумблера Использовать пагинацию на стороне сервера помогает оптимизировать загрузку и отображение большого количества данных. Например, большой список папок в коллекции будет подгружаться частями последовательно при прокрутке списка вниз.

3. После заполнения полей нажать кнопку img.

Появится уведомление, информирующее об успешном сохранении источника данных.

После сохранения в карточке источника данных для HTTP запроса появится кнопка [SEND], нажатие которой позволяет протестировать данный запрос. После нажатия кнопки [SEND] вернется ответ на заданный запрос.

img

При наличии переменных перед отправкой запроса необходимо указать их значения в отдельном окне после нажатия кнопки [SEND].

img

Тестируется при этом не сам URL, а источник данных.

Если форма создания источника данных не была сохранена или в карточке уже созданного источника данных есть несохраненные изменения, кнопка [SEND] отображаться не будет.

Созданный источник данных отображается в рабочем поле раздела Источники данных и доступен для использования при добавлении форм и коллекций внутри приложений.