Руководтсво администратора/разработчика

Документация

Проектирование персональных страниц

Запросы к хранилищу данных

Обзор

Запросы это объекты, в которых настраивается параметры и критерии запросов данных к API системы, параметры сортировки, пагенация и т.д.

Настройка подзапросов

Вариант: Значение одного из текстовых полей должно быть пустым.

Для этих целей обязательны для заполнения поля Шаблон и Элемент, а также в поле Значение необходимо указать null, для того, чтобы активировать поиск по значению элемента, но с пустым значением.

Формат данных

Все данные, полученные через контекст данных из запросов имеют единый формат.

Структура запросов

Разбираем, как формируется строка запросов в Buildbox Workplace

Страницы Buildbox Workplace генерируются по заданным правилам, чтобы было удобно менять формат вывода без каких-либо дополнительных действий.

Структура обращения к Buildbox Workplace такова:

http(s)://домен/псевдоним/сервис/формат_вывода/обработчик/объект/опции

 

  • домен - адрес ресурса
     
  • псевдоним - дополнение к адресу, котороое может повторять часть адреса. Предназначено для размещения различных сервисов по одному доменному адресу.
    По-умолчанию дублирует первое слово доменного имени.
     
  • сервис - (api/gui) - отдельный сервис, которые обрабатывает запросы.
    Buildbox Workplace - обрабатывается сервисом GUI. API - сервис доступа к базе данных Buildbox DataBase.
     
  • формат_вывода - (list/view/modal/pdf/json/doc/pdfload/jsonload/docload), применим только для сервиса GUI (см.ниже)
    list - вывод как полноценная страница консоли
    view - HTML-страница в файле с использованием стилей консоли для вывода в отдельном окне
    modal - вывод чистого HTML для модальных окон и вставки в интерфейс (без стилей)
    pdf - вывод в PDF-файле (только для "обработчиков" - page, block)
    doc - вывод в формате Word  (только для "обработчиков" - page, block)
    json - вывод объекта в текстовом виде с заголовками json-документа (только для объекта (обработчик - obj, см.ниже)

    Для форматов pdf/json/doc существует два варианта просмотра результатов - открыть в браузере/скачать.
    Для скачивания используются следущие форматы_вывода
    pdfload - скачать файл в PDF-файле (только для "обработчиков" - page, block​​​​​​​)
    docload - скачать файл в формате Word (только для "обработчиков" - page, block​​​​​​​)
    jsonload - скачать файл объекта в текстовом виде с заголовками json-документа (только для объекта (обработчик - obj, см.ниже)
     
  • обработчик - (page/column/obj/package/block)
    page - страница приложения Cockpit (см. ниже)
    package - пакет приложения Cockpit (см. ниже)
    block - блок приложения Cockpit (см. ниже)
    colunm - системная консоль работы с данными
    obj - вывод информации об объекте
     
  • объект - все элементы вывода являются объектам, различные обработчики требуют для себя соответствующих объектов (например, чтобы обработчик page сгенерировал страницу, ему необходим объект страницы, который будет обработан исходи из логики "обработчика")
     
  • опции - дополнительные условия для работы "обработчиков" (фильтрация и т.д.)
    Для форматов ist/view/modal/pdf/json/doc/text/pdfload/jsonload/docload/textload в качестве опции можно указать название файла, который будет открыт или в который будет сохранены данные.

 

Получение данных от запроса

Для вывода информации из Базы данных на странице необходимо создать объект Запроса, в котором настроить условия фильтрации и поиска данных. Далее, созданный запрос, необходимо выбрать в настройках Блока.

Если запрос был выбран один, то все данные этого запроса доступны в переменных Контекста в переменной:

".Data.default.Data", и представляют собой массив объектов запроса.

Если в Блоке необходимо оперировать данными различных запросов, то необходимо отметить данные запросы в настройках Блока "галочками".

Данные запросов, отмеченных в настройках Блока запросов, попадают в контекст страницы и для доступа к ним необходимо произвести именование данных запросов.

В данной реализации необходимо в конфигурации Блока создать раздел "dataset", к котором происходит именование запроса через связывание его идентификатора с именем, где:

  • name - имя запроса, по-которому его данные будут доступны в Контексте
  •  uid - идентификатор запроса

Пример получения массива данных из различных запросов:

{ ......
   "datasets":{"type":"dataset","source":[
      {"name":"default","uid":"de18b2af-824d-4703-a49d-8808146f450e"},
      {"name":"aucslinks","uid":"8197c7e9-4066-409e-a5fc-623578a16e88"}]}
.....}

Ответ запроса

Данные, полученные в теле ответа запроса имеют стандартизованный формат. Если запрос "внутренний" (был сформирован внутри Buildbox и получал данные из базы данных), то формат ответа имеет из себя следующий вид:

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