Перейти к основному содержимому

Сервис пользовательского интерфейса

Сервис пользовательского интерфейса — это инфраструктурный сервис, предназначенный для формирования интерфейса пользователя. Сервис обрабатывает запросы, полученные в формате JSON, возвращая в ответе дерево компонентов для отображения в интерфейсе, и данные, при их наличии.
В процессе обработки запроса сервис аутентифицирует пользователя, проверяет возможность выполнения действия, связанного с командой, полученной из запроса пользователя, если команда привязана к какому-то действию (например, запросу к сервису бизнес-логики). Результат выполнения действия добавляется в ответ сервиса.
В результате обработки запроса формируется ответ пользователю в виде набора компонент для отображения в пользовательском интерфейсе или в виде сообщения с кодом ошибки при неуспешном исходе.

Модель данных

Основной сущностью в работе сервиса является элемент графического интерфейса контрол (control). Контрол имеет стандартный набор свойств (Properties):

  • метаданные: документно-ориентированная модель страницы в формате JSON, отправляемая клиентскому ядру для отрисовки структуры страницы Атомкод;
  • data: набор данных, содержащий в себе информацию, полученную от сервиса бизнес-логики;
  • action: это обращение к сервису бизнес-логики или системная команда;
  • dataset: массив данных, который получен в результате выполнения action.

Модель dataset

Модель dataset представляет собой объект формата JSON , описывающий свойства и способы их получения во время выполнения.

Существуют два вида dataset:

  • динамический: позволяет получить заданное количество элементов по фильтру для страницы Атомкод; используется, когда на странице не помещается весь набор запрошенных данных и отрисовка происходит по частям при нажатии пользователем соответствующей клавиши;
  • статический: позволяет получить набор контейнеров; используется, когда пользователь запрашивает большое количество информации от сервиса бизнес-логики.

В поле data отправляются данные в формате JSON запроса языка GraphQL. Сервис обрабатывает запрос и возвращает ответ в формате JSON с запрошенными данными. Такой необработанный запрос позволяет вернуть выборку данных с помощью обращения к маршруту метода API, работающего с базой данных с помощью GraphQL, без проверки заголовков ответов от сервисов бизнес-логики.

Проекты DevTools

При публикации проекта DevTools cервис пользовательского интерфейса сохраняет информацию об установленном проекте, его версии, дату и время публикации. Для получения списка проектов DevTools, включающих наименование проекта, версию, дату и время публикации, используется метод API cервиса пользовательского интерфейса GetProjects.