Configuring the API for building FastReport Online Designer

Configuring the API for building FastReport Online Designer

FastReport Online Designer Builder now can build the designer using the API. Previously, users had to manually build in FastReport Online Designer Builder. You could download the result or receive it by mail. Now you can automate this process to update FastReport Online Designer if the product version changes. To do this, you need to create features that work with the API and deploy the designer build on your servers. As an example of using the API, you can request a product version once a day, and if it has changed, automatically request a build. And after that, host the updated designer.

API Key

A user is authenticated using an API key, which you can create in FastReport Online Designer Builder. To create a key, you need to:

- sign in with your account;
- go to the new API Keys menu item;
- click on the button in the lower right corner or the red inscription.

Generating an API Key

 

After that, you will have a new API key generated. You can click on the key to copy it and use it for authentication in API.

Generated API key for authentication

 

Build request

To request a build, make a POST request at:

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

The request body must contain at least your API key. If you don’t specify the parameter, its default Value will be used!

Minimum request example:

{
"APIkey": "Your API key"
}

The parameters that the API accepts for build are described below.

Parameters

 Parameter

 Description

 themes

 The build theme.

 Data type: string

 See the values in the themes table.

 components

 Components to be included in the build.

 Data type: array

 See the values in the components table.

 bands

 Bands to be included in the build.

 Data type: array

 See the values in the bands table.

 controls

 The dialog box controls to be included in the build.

 Data type: array

 See the values in the controls table.

 plugins

 Plugins to be included in the build.

 Data type: array

 See the values in the plugins table.

 customization

 The control panels to be included in the build.

 Data type: array

 See the values in the panels table.

 config

 Build configuration.

 Data type: object

 See the object structure in the settings table.

 

Themes

 Value

 Description

 none

 No theme

 classic

 Use classic theme

 mini

 Use minimal theme

 

Components

 Value

 Description

 TextObject

 Text Component

 PictureObject

 Picture Component

 ShapeObject

 Shape Component

 PolygonObject

 Polygon Component

 PolyLineObject

 Polyline Component

 LineObject

 Line Component

 SubreportObject

 Subreport Component

 TableObject

 Table Component

 MatrixObject

 Matrix Component

 AdvMatrixObject

 Advanced Matrix Component

 BarcodeObject

 Barcode Component

 RichObject

 Rich Text Component

 CheckBoxObject

 Checkbox Component

 CellularTextObject

 Cellular Text Component

 LinearGauge

 Linear Gauge Component

 SimpleGauge

 Simple Gauge Component

 RadialGauge

 Radial Gauge Component

 SimpleProgressGauge

 Simple Progress Gauge Component

 HtmlObject

 HTML Component

 SVGObject

 SVG Component

 ContainerObject

 Container Component

 DigitalSignatureObject

 Digital Signature Component

 MapObject

 Map Component

 

Bands

 Value

 Description

 ReportTitleBand

 Report Title

 ReportSummaryBand

 Report Summary

 PageHeaderBand

 Page Header

 PageFooterBand

 Page Footer

 ColumnHeaderBand

 Column Header

 ColumnFooterBand

 Column Footer

 DataHeaderBand

 Data Header

 DataBand

 Data

 DataFooterBand

 Data Footer

 GroupHeaderBand

 Group Header

 GroupFooterBand

 Group Footer

 ChildBand

 Child Band

 OverlayBand

 Overlay Band

 

Controls

 Value

 Description

 ButtonControl

 Button

 CheckBoxControl

 Checkbox

 CheckedListBoxControl

 Checked List

 ComboBoxControl

 Text with Combobox

 DateTimePickerControl

 Date Time Picker

 LabelControl

 Label

 ListBoxControl

 List

 MonthCalendarControl

 Calendar

 RadioButtonControl

 Radio Button

 TextBoxControl

 Text Box

 

Plugins

 Value

 Description

 CODE

 Page with Code

 GUIDES

 Guidance Lines

 POSITION_BLOCK

 Position of the component when moving

 RULER

 Ruler

 BAND_HORZ_RESIZER

 Band Horizontal Resizing

 HOTKEY

 Hot Keys

 CONTEXT_MENU

 Context Menu

 DBLCLICK

 Double Click

 

Panels

 Value

 Description

 Properties

 Properties Panel

 Events

 Events Panel

 ReportTree

 Repot Tree Panel

 Data

 Data Panel

 Preview

 Page Preview Panel

 

Settings

 Value

 Description

 features

 Data type: array

 See the list of values in the features table.

 entryName

 Data type: object

{

    "name": "index",

    "ext": "html"

}

 publicPath

 Data type: string.

 Public path to the application on the server.

 saveSuccessRedirect

 Data type: object.

{

      "url": null,

      "blank": false,

      "useParent": false,

      "removeConfirmation": true

}      

 customFonts

 Link to fonts

 API

 Data type: array

 See the list of values in the API table.

 

Features

{

    "name": "SHOW_BAND_TITLE",

    "enabled": true

}

Object contains feature key and checkbox

 Value

 Description

 SHOW_BAND_TITLE

 Band Title

 ADD_BANDS

 Adding bands

 SORT_BANDS

 Sorting bands

 RESIZE_BANDS

 Resizing bands

 CONFIRM_BEFORE_EXIT

 Confirm Before Exit

 MOVABLE_POPUPS

 Movable Popups

 REVISION_FILES

 Hash In File Names

 MINIFY

 Code Minification

 ENABLE_PREVIEW_BUTTON

 Preview Button

 READONLY_MODE

 Disable Editing

 AUTOSAVE

 Autosave

 

API

{

    "name": "API_SAVE_REPORT",

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

}

The object contains an API key and a link

 Value

 Description

 API_SAVE_REPORT

 Report saving

 API_MAKE_PREVIEW

 Report Preview

 API_GET_REPORT

 Getting report

 API_GET_FUNCTIONS

 Getting functions

 API_GET_CUSTOM_CONFIG

 Application Config

 API_GET_CONNECTION_TYPES

 Connection Types

 API_GET_CONNECTION_TABLES

 Connection Tables

 API_GET_CONNECTION_STRING_PROPERTIES

 Connection String Properties

 API_MAKE_CONNECTION_STRING

 Creating the Connection String

 API_GET_MSCHART_TEMPLATE

 MSChart Template

After requesting a build, you will get a UUID to check its status. Example of the response:

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

 

Checking the build status

To check the build status, make a GET request to:

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

The link should contain your API key used for the build and the UUID you got when you requested it.

You can see several statuses in the response depending on the build stage.

1 (QUEUED) –The build is scheduled and is now queued.
2 (PROCESSING) –Build started but still processing.
3 (BUILT) – The completed, you can download it.

Example of the response:

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

If the build is completed, you will receive a download link in the response.

 

Downloading the latest build

To download the built application, make a GET request to:

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

Specify your API key in the link. In response to the request, you will receive an archive file with the built application.


Getting the current version of FastReport Online Designer

Make a GET request to get the current version of the application:

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

Specify your API key in the link. In response, you will receive the current version of FastReport Online Designer. Example of the response:

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

Our team will continue to improve the client experience when working with FastReport products. For any questions, contatc our support at support@fast-report.com.