Настройка API для сборки FastReport Online Designer

Настройка API для сборки FastReport Online Designer

В FastReport Online Designer Builder появилась возможность выполнить сборку дизайнера с помощью API. Ранее пользователям было необходимо вручную выполнять сборку в FastReport Online Designer Builder. Результат сборки можно было скачать в приложении или же получить на почту. Теперь вы можете автоматизировать этот процесс, чтобы обновлять FastReport Online Designer при изменении версии продукта. Для этого вам будет необходимо создать функционал, работающий с API и выполняющий разворачивание сборки дизайнера на ваших серверах. Как пример использования API - можно раз в сутки запрашивать версию продукта и, если она поменялась, автоматически запрашивать сборку. А уже после размещать у себя обновленный дизайнер.

API Ключ

Авторизация пользователя происходит с помощью API ключа, который вы можете создать в FastReport Online Designer Builder. Для создания ключа вам необходимо:

- войти под своим аккаунтом;
- перейти в новый пункт меню API Ключи;
- кликнуть на кнопку в правом нижнем углу, либо на красную надпись.

Создание ключа для API

 

После этого у вас будет создан новый API ключ. Вы можете кликнуть на ключ, чтобы скопировать его и использовать для авторизации в API.

Сформированный API ключ для авторизации

 

Запрос сборки

Чтобы запросить сборку вам необходимо сделать POST запрос по адресу:

https://dsg2014.fast-report.com:3000/builderAPI/build

Тело запроса должно содержать как минимум ваш API ключ. Если параметр не указан – будет использоваться его значение по умолчанию!

Пример минимального запроса:

{
"APIkey": "Ваш API ключ"
}

Ниже описаны параметры, которые принимает API для сборки.

Параметры

 Параметр

 Описание

 themes

 Тема, с которой будет выполнена сборка.

 Тип данных: строка

 Значения смотреть в таблице темы.

 components

 Компоненты, которые нужно включить в сборку.

 Тип данных: массив

 Значения смотреть в таблице компоненты.

 bands

 Бэнды, которые нужно включить в сборку.

 Тип данных: массив

 Значения смотреть в таблице бэнды.

 controls

 Контролы диалогового окна, которые нужно включить в сборку.

 Тип данных: массив

 Значения смотреть в таблице контролы.

 plugins

 Плагины, которые нужно включить в сборку.

 Тип данных: массив

 Значения смотреть в таблице плагины.

 customization

 Панели управления, которые нужно включить в сборку.

 Тип данных: массив

 Значения смотреть в таблице панели.

 config

 Конфигурация сборки

 Тип данных: объект

 Структуру объекта смотреть в таблице настройки.

 

Темы

 Значение

 Описание

 none

 Не использовать тему

 classic

 Использовать классическую тему

 mini

 Использовать минималистичную тему

 

Компоненты

 Значение

 Описание

 TextObject

 Текстовый компонент

 PictureObject

 Компонент рисунок

 ShapeObject

 Компонент фигуры

 PolygonObject

 Компонент полигон

 PolyLineObject

 Компонент ломаная линия

 LineObject

 Компонент линия

 SubreportObject

 Компонент вложенный отчет

 TableObject

 Компонент таблица

 MatrixObject

 Компонент матрица

 AdvMatrixObject

 Компонент продвинутая матрица

 BarcodeObject

 Компонент штрихкод

 RichObject

 Компонент форматированный текст

 CheckBoxObject

 Компонент флажок

 CellularTextObject

 Компонент текст в ячейках

 LinearGauge

 Компонент линейный датчик

 SimpleGauge

 Компонент простой датчик

 RadialGauge

 Компонент круговой датчик

 SimpleProgressGauge

 Компонент простой датчик прогресса

 HtmlObject

 Компонент HTML

 SVGObject

 Компонент SVG

 ContainerObject

 Компонент контейнер

 DigitalSignatureObject

 Компонент цифровая подпись

 MapObject

 Компонент карта

 

Бэнды

 Значение

 Описание

 ReportTitleBand

 Заголовок отчета

 ReportSummaryBand

 Подвал отчета

 PageHeaderBand

 Заголовок страницы

 PageFooterBand

 Подвал страницы

 ColumnHeaderBand

 Заголовок колонки

 ColumnFooterBand

 Подвал колонки

 DataHeaderBand

 Заголовок данных

 DataBand

 Данные

 DataFooterBand

 Подвал данных

 GroupHeaderBand

 Заголовок группы

 GroupFooterBand

 Подвал группы

 ChildBand

 Дочерний бэнд

 OverlayBand

 Фоновый бэнд

 

Контролы

 Значение

 Описание

 ButtonControl

 Кнопка

 CheckBoxControl

 Флажок

 CheckedListBoxControl

 Список с флажками

 ComboBoxControl

 Текстовое поле с выпадающим списком

 DateTimePickerControl

 Поле ввода даты

 LabelControl

 Надпись

 ListBoxControl

 Список

 MonthCalendarControl

 Календарь

 RadioButtonControl

 Переключатель

 TextBoxControl

 Текстовое поле

 

Плагины

 Значение

 Описание

 CODE

 Страница с кодом

 GUIDES

 Направляющие линии

 POSITION_BLOCK

 Позиция компонента при перемещении

 RULER

 Линейка

 BAND_HORZ_RESIZER

 Изменение горизонтальной ширины бэндов

 HOTKEY

 Горячие клавиши

 CONTEXT_MENU

 Контекстное меню

 DBLCLICK

 Двойной клик

 

Панели

 Значение

 Описание

 Properties

 Панель свойств

 Events

 Панель событий

 ReportTree

 Панель с древом отчета

 Data

 Панель с источниками данных

 Preview

 Панель с предпросмотром страниц

 

Настройки

 Значение

 Описание

 features

 Тип данных: массив

 Список значений смотреть в таблице функции.

 entryName

 Тип данных: объект

{

    "name": "index",

    "ext": "html"

}

 publicPath

 Тип данных: строка.

 Публичный путь до приложения на сервере.

 saveSuccessRedirect

 Тип данных: объект.

{

      "url": null,

      "blank": false,

      "useParent": false,

      "removeConfirmation": true

}      

 customFonts

 Ссылка на шрифты

 API

 Тип данных: массив

 Список значений смотреть в таблице API.

 

Функции

{

    "name": "SHOW_BAND_TITLE",

    "enabled": true

}

Объект содержит ключ функции и флаг

 Значение

 Описание

 SHOW_BAND_TITLE

 Заголовок бэнда

 ADD_BANDS

 Добавление бэндов

 SORT_BANDS

 Сортировка бэндов

 RESIZE_BANDS

 Изменение размера бэндов

 CONFIRM_BEFORE_EXIT

 Подтверждение перед выходом

 MOVABLE_POPUPS

 Перемещаемые диалоговые окна

 REVISION_FILES

 Хеш в названиях файлов

 MINIFY

 Минификация кода

 ENABLE_PREVIEW_BUTTON

 Кнопка превью

 READONLY_MODE

 Заблокировать возможность редактирования

 AUTOSAVE

 Автоматическое сохранение

 

API

{

    "name": "API_SAVE_REPORT",

    "value": "../FastReport.Export.axd?putReport=#{id}"

}

Объект содержит ключ API и ссылку

 Значение

 Описание

 API_SAVE_REPORT

 Сохранение отчета

 API_MAKE_PREVIEW

 Превью отчета

 API_GET_REPORT

 Получение отчета

 API_GET_FUNCTIONS

 Получение функций

 API_GET_CUSTOM_CONFIG

 Конфиг для приложения

 API_GET_CONNECTION_TYPES

 Типы подключений

 API_GET_CONNECTION_TABLES

 Таблицы подключений

 API_GET_CONNECTION_STRING_PROPERTIES

 Свойства строки подключения

 API_MAKE_CONNECTION_STRING

 Создание строки подключения

 API_GET_MSCHART_TEMPLATE

 Шаблон MSChart

После запроса сборки вы получите UUID, с которым сможете проверить ее статус. Пример ответа:

{
 "message": "Successfully queued",
 "code": 0,
 "payload": {
 "UUID": "25d36576-c5e2-49f4-8ab0-73838c457336"
 }
}

 

Проверка статуса сборки

Для проверки статуса сборки необходимо сделать GET запрос по адресу:

https://dsg2014.fast-report.com:3000/builderAPI/checkBuild/{apiKey}/{buildUUID}

В ссылке нужно указать ваш API ключ, использовавшийся для сборки и UUID, который вы получили при ее запросе.

Вы можете увидеть в ответе несколько статусов, в зависимости от того на каком этапе находится сборка.

1 (QUEUED) – Сборка запланирована и сейчас находится в очереди.
2 (PROCESSING) – Сборка началась, но все еще обрабатывается.
3 (BUILT) – Сборка завершена, вы можете скачать ее.

Пример ответа:

{
 "code": 0,
 "payload": {
 "statusCode": 2,
 "statusText": "PROCESSING"
 }
}

Если сборка завершена – в ответе вы получите ссылку на ее скачивание.

 

Скачивание последней сборки

Для скачивания собранного приложения вам необходимо сделать GET запрос по адресу:

https://dsg2014.fast-report.com:3000/builderAPI/download/{apiKey} 

В ссылке вам нужно указать ваш API ключ. В ответе на запрос вы получите файл архива с собранным приложением.


Получение текущей версии FastReport Online Designer

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

https://dsg2014.fast-report.com:3000/builderAPI/designer-version/{apiKey}

В ссылке вам нужно указать ваш API ключ. В ответе вы получите текущую версию FastReport Online Designer. Пример ответа:

{
 "payload": {
 "version": "2023.1.3"
 },
 "code": 0
}

Наша команда продолжит работу над улучшением клиентского опыта при работе с продуктами FastReport. По всем возникающим вопросам пишите в нашу поддержку support@fastreport.ru.