Загрузка нового шаблона
Одна из основных возможностей FastReport Corporate Server — это хранение шаблонов, отчётов и других данных в облаке. В этой статье будет рассмотрен способ загрузить свой готовый шаблон в хранилище шаблонов FastReport Corporate Server.
Приступая к работе
Вам понадобятся следующие инструменты и возможности:
Знания по использованию API key в FastReport Corporate Server.
В этой статье будет пропущена дополнительная информация по аутентификации и авторизации.
Инструмент curl.
Подойдёт любой другой REST клиент, но примеры будут построены для curl.
Шаблон отчёта.
Его можно подготовить с помощью бесплатной программы FastReport Community Designer.
Активная подписка для FastReport Corporate Server.
Доступ в интернет.
Инструкция
Вам необходимо получить идентификатор корневой папки подписки. Этот идентификатор никогда не будет меняться, поэтому его можно сохранить и не делать запрос каждый раз перед загрузкой нового шаблона.
Что бы запросить корневую директорию выполните
GET
запрос наhttps://fastreport.cloud/api/rp/v1/Templates/Root
.curl -X GET "https://fastreport.cloud/api/rp/v1/Templates/Root" -H "accept: text/plain"
В этом случае будет возвращена директория для подписки по умолчанию. Можно указать конкретную подписку передав параметр
subscriptionId
.curl -X GET "https://fastreport.cloud/api/rp/v1/Templates/Root?subscriptionId=your_subscription_id" -H "accept: text/plain"
Пример ответа.
{ "name": "RootFolder", "parentId": null, "tags": [], "icon": "", "type": "Folder", "size": 16384, "subscriptionId": "5fa919fa292a8300019349bc", "status": "None", "id": "5fa919f9292a8300019349b9", "createdTime": "2020-11-09T10:29:13.928Z", "creatorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491", "editedTime": "2020-11-13T15:58:45.69Z", "editorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491" }
Идентификатор директории из примера выше
5fa919f9292a8300019349b9
.Для загрузки нужного шаблона выполните
POST
запрос наhttps://fastreport.cloud/api/rp/v1/Templates/Folder/{id}/File
, где вместо{id}
следует подставить идентификатор директории, а в теле запроса передать JSON по схеме ниже.{ "name": "string", "content": "base64encoded(template.frx)" }
name
— название файла, который будет отображаться в пользовательской панели.К названию файла добавьте расширение
.frx
вручную.content
— содержимое файла закодированное в base64.
Пример запроса.
curl -X POST "https://fastreport.cloud/api/rp/v1/Templates/Folder/5fa919f9292a8300019349b9/File" -H "accept: text/plain" -H "Content-Type: application/json-patch+json" -d "{ \"name\": \"template.frx\", \"content\": \"77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxSZXBvcnQgU2NyaXB0TGFuZ3VhZ2U9IkNTaGFycCIgUmVwb3J0SW5mby5DcmVhdGVkPSIxMi8wNC8yMDIwIDEwOjU4OjU3IiBSZXBvcnRJbmZvLk1vZGlmaWVkPSIxMi8wNC8yMDIwIDExOjAwOjIwIiBSZXBvcnRJbmZvLkNyZWF0b3JWZXJzaW9uPSIyMC4yMC40LjEiPg0KICA8RGljdGlvbmFyeS8+DQogIDxSZXBvcnRQYWdlIE5hbWU9IlBhZ2UxIiBXYXRlcm1hcmsuRm9udD0iQXJpYWwsIDYwcHQiPg0KICAgIDxSZXBvcnRUaXRsZUJhbmQgTmFtZT0iUmVwb3J0VGl0bGUxIiBXaWR0aD0iNzE4LjIiIEhlaWdodD0iMzcuOCIvPg0KICAgIDxQYWdlSGVhZGVyQmFuZCBOYW1lPSJQYWdlSGVhZGVyMSIgVG9wPSI0MSIgV2lkdGg9IjcxOC4yIiBIZWlnaHQ9IjI4LjM1Ii8+DQogICAgPERhdGFCYW5kIE5hbWU9IkRhdGExIiBUb3A9IjcyLjU1IiBXaWR0aD0iNzE4LjIiIEhlaWdodD0iNzUuNiI+DQogICAgICA8VGV4dE9iamVjdCBOYW1lPSJUZXh0MSIgV2lkdGg9IjcxOC4yIiBIZWlnaHQ9Ijc1LjYiIFRleHQ9IkhlbGxvLCBGYXN0UmVwb3J0IENsb3VkISEhIiBIb3J6QWxpZ249IkNlbnRlciIgVmVydEFsaWduPSJDZW50ZXIiIEZvbnQ9IkFyaWFsLCAxMHB0Ii8+DQogICAgPC9EYXRhQmFuZD4NCiAgICA8UGFnZUZvb3RlckJhbmQgTmFtZT0iUGFnZUZvb3RlcjEiIFRvcD0iMTUxLjM1IiBXaWR0aD0iNzE4LjIiIEhlaWdodD0iMTguOSIvPg0KICA8L1JlcG9ydFBhZ2U+DQo8L1JlcG9ydD4NCg==\"}"
Пример ответа.
{ "reportInfo": { "author": null, "created": "2020-12-04T10:58:57", "creatorVersion": "20.20.4.1", "description": null, "modified": "2020-12-04T11:00:20", "name": null, "picture": null, "previewPictureRatio": 0, "saveMode": "All", "savePreviewPicture": false, "tag": null, "version": null }, "name": "template.frx", "parentId": "5fa919f9292a8300019349b9", "tags": null, "icon": null, "type": "File", "size": 17159, "subscriptionId": "5fa919fa292a8300019349bc", "status": "Success", "id": "5fc9ece6b792c90001d94b13", "createdTime": "2020-12-04T08:01:42.7087229+00:00", "creatorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491", "editedTime": "2020-12-04T08:01:42.7087112+00:00", "editorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491" }
Теперь этот шаблон можно использовать для подготовки (построения) отчёта и экспорта.