В FastReport Online Designer Builder появилась возможность выполнить сборку дизайнера с помощью API. Ранее пользователям было необходимо вручную выполнять сборку в FastReport Online Designer Builder. Результат сборки можно было скачать в приложении или же получить на почту. Теперь вы можете автоматизировать этот процесс, чтобы обновлять FastReport Online Designer при изменении версии продукта. Для этого вам будет необходимо создать функционал, работающий с API и выполняющий разворачивание сборки дизайнера на ваших серверах. Как пример использования API - можно раз в сутки запрашивать версию продукта и, если она поменялась, автоматически запрашивать сборку. А уже после размещать у себя обновленный дизайнер.
Авторизация пользователя происходит с помощью API ключа, который вы можете создать в FastReport Online Designer Builder. Для создания ключа вам необходимо:
1) Войти в сервис сборки под своим аккаунтом.
2) Перейти в раздел “API Ключи” (находится при нажатии на три точки).
3) Нажать кнопку “+ Создать”.
После этого у вас будет создан новый 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 |
Тип данных: объект |
|
|
|
publicPath |
Тип данных: строка. |
|
Публичный путь до приложения на сервере. |
|
|
saveSuccessRedirect |
Тип данных: объект. |
|
|
|
customFonts |
Ссылка на шрифты |
|
API |
Тип данных: массив |
|
Список значений смотреть в таблице API. |
|
|
Функции |
||
Объект содержит ключ функции и флаг |
||
|
Значение |
Описание |
|
|
SHOW_BAND_TITLE |
Заголовок бэнда |
|
|
ADD_BANDS |
Добавление бэндов |
|
|
SORT_BANDS |
Сортировка бэндов |
|
|
RESIZE_BANDS |
Изменение размера бэндов |
|
|
CONFIRM_BEFORE_EXIT |
Подтверждение перед выходом |
|
|
MOVABLE_POPUPS |
Перемещаемые диалоговые окна |
|
|
REVISION_FILES |
Хеш в названиях файлов |
|
|
MINIFY |
Минификация кода |
|
|
ENABLE_PREVIEW_BUTTON |
Кнопка превью |
|
|
READONLY_MODE |
Заблокировать возможность редактирования |
|
|
AUTOSAVE |
Автоматическое сохранение |
|
|
API |
||
Объект содержит ключ 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 ключ. В ответе на запрос вы получите файл архива с собранным приложением.
Для получения текущей версии приложения необходимо сделать 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.