Добавление источника данных JSON
В этой статье будет рассмотрен способ создать новый источник данных на основе JSON в FastReport Corporate Server.
Приступая к работе
Вам понадобятся следующие инструменты и возможности:
Знания по использованию API key в FastReport Corporate Server.
В этой статье будет пропущена дополнительная информация по аутентификации и авторизации.
Инструмент curl.
Подойдёт любой другой REST клиент, но примеры будут построены для curl.
JSON файл.
JSON схема.
Активная подписка для FastReport Corporate Server.
Доступ в интернет.
Создание источника данных
Для того, чтобы создать источник данных, отправьте CREATE
запрос на https://fastreport.cloud/api/data/v1/DataSources
.
Пример тела запроса:
{
"name": "fakeAPI",
"connectionString": "Json=aHR0cHM6Ly9qc29ucGxhY2Vob2xkZXIudHlwaWNvZGUuY29tL3Bvc3Rz;JsonSchema=eyJ0eXBlIjoiYXJyYXkiLCJpdGVtcyI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ1c2VySWQiOnsidHlwZSI6Im51bWJlciJ9LCJpZCI6eyJ0eXBlIjoibnVtYmVyIn0sInRpdGxlIjp7InR5cGUiOiJzdHJpbmcifSwiYm9keSI6eyJ0eXBlIjoic3RyaW5nIn19fX0=;Encoding=utf-8",
"subscriptionId": "604f52e1261a3c19104c0e25",
"connectionType": "JSON"
}
Где
name
— имя источника данных (будет отображаться в дизайнере при выборе).connectionString
— строка подключения, в случае с JSON она состоит из 3-х элементов:Json
— JSON файл или http/https ссылка закодировання в base64;JsonSchema
— схема, описывающая структуру JSON файла, закодировання в base64;Encoding
— кодировка, стоит всегда передаватьutf-8
.
subscriptionId
— id подписки, к которой будет прикреплён источник данных.connectionType
— тип подключения, в этом руководстве используетсяJSON
.
Пример запроса.
curl -X POST "https://fastreport.cloud/api/data/v1/DataSources" -H "accept: text/plain" -H "Content-Type: application/json-patch+json" -d "{ \"name\": \"fakeAPI\", \"connectionString\": \"Json=aHR0cHM6Ly9qc29ucGxhY2Vob2xkZXIudHlwaWNvZGUuY29tL3Bvc3Rz;JsonSchema=eyJ0eXBlIjoiYXJyYXkiLCJpdGVtcyI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ1c2VySWQiOnsidHlwZSI6Im51bWJlciJ9LCJpZCI6eyJ0eXBlIjoibnVtYmVyIn0sInRpdGxlIjp7InR5cGUiOiJzdHJpbmcifSwiYm9keSI6eyJ0eXBlIjoic3RyaW5nIn19fX0=;Encoding=utf-8\", \"subscriptionId\": \"604f52e1261a3c19104c0e25\", \"connectionType\": \"JSON\"}"
Пример ответа.
{
"id": "60648953db44d83f9c6da98f",
"name": "fakeAPI",
"connectionType": "JSON",
"connectionString": "Json=aHR0cHM6Ly9qc29ucGxhY2Vob2xkZXIudHlwaWNvZGUuY29tL3Bvc3Rz;JsonSchema=eyJ0eXBlIjoiYXJyYXkiLCJpdGVtcyI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ1c2VySWQiOnsidHlwZSI6Im51bWJlciJ9LCJpZCI6eyJ0eXBlIjoibnVtYmVyIn0sInRpdGxlIjp7InR5cGUiOiJzdHJpbmcifSwiYm9keSI6eyJ0eXBlIjoic3RyaW5nIn19fX0=;Encoding=utf-8",
"dataStructure": "<JsonDataSourceConnection ConnectionString=\"rijcmlqrcq6OJBTPt0pNFvRuRtDUSHSHLQy/QlNolifTTaTjsrExzdbf1ifpPblp655sducwkD1lEVzxVZF8qRuE0NT6UkyTr7kwjGItFOwh7DBsOyL6QkQY4FOZ2ki8Al2R30gpXs6nMUGg1BRwCF0rj3+QvmXbj+2t8x5RerR5y7inP1R+oCuo0wvfcTeOMfYfZrjdE3whziFh5Qn3mR7vaevmV9peDWQ3LYyK2ec3KpGVeEXSqM+10WyL4ahY7EHuQIzIZROGFGKfW50cUYwdillhKy24gNdsUzi5klG66DDQtCKEOLbNutDvA0xqCTW3MvRNORSbvckL6g3gM+cStJ5PQ2XUjF9yz9zdwmramnXI6k+MK8V9lrMkc0XFkDMHOxDlfG2jHhkFuUTgmiKp7hQMg==\">\r\n <JsonTableDataSource Name=\"JSON\" DataType=\"FastReport.Data.JsonConnection.JsonParser.JsonArray\" Enabled=\"true\" TableName=\"JSON\">\r\n <Column Name=\"index\" DataType=\"System.Int32\"/>\r\n <Column Name=\"item\" DataType=\"FastReport.JsonBase\">\r\n <Column Name=\"userId\" DataType=\"System.Double\"/>\r\n <Column Name=\"id\" DataType=\"System.Double\"/>\r\n <Column Name=\"title\" DataType=\"System.String\"/>\r\n <Column Name=\"body\" DataType=\"System.String\"/>\r\n </Column>\r\n <Column Name=\"array\" DataType=\"FastReport.JsonBase\"/>\r\n </JsonTableDataSource>\r\n</JsonDataSourceConnection>\r\n",
"subscriptionId": "604f52e1261a3c19104c0e25",
"editedTime": "2021-03-31T14:38:10.5792982Z",
"editorUserId": "2df79f83-07f1-41ba-96b5-7757bbf377df",
"createdTime": "0001-01-01T00:00:00",
"creatorUserId": "2df79f83-07f1-41ba-96b5-7757bbf377df",
"isConnected": true
}