В 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.