Отчёт – основная сущность сервиса B2B-Sync. Он используется для предоставления информации по запрошенному объекту (автомобилю, физическому лицу или контрагенту).
Сервис использует синхронный метод генерации отчётов. Получив запрос на генерацию, API создаёт новый отчёт с уникальным идентификатором, наполняет его данными, полученными от поставщиков, и возвращает отчёт в теле ответа. Отчёт предоставляется за фиксированное время (даже если ответ от некотрых источников ещё не был получен) или раньше, если отчёт готов.
Запросы на генерацию отчёта не являются идемпотентными, то есть каждый запрос к сервису обрабатывается независимо от других. При получении нескольких идентичных запросов API запустит процесс получения данных для каждого из них.
Тип отчёта определяет, какие блоки данных будут содержаться в отчёте по запрошенному объекту.
Чтобы получить список доступных вашему домену типов отчётов, используйте GET-запрос к /domain/report_types
. В запросе можно указать дополнительные параметры получения ответа.
Параметр | Тип | Описание |
---|---|---|
Необязательные | ||
_can_generate |
boolean |
Отображение типов отчётов, доступных пользователю для генерации. Значение по умолчанию – false .Возможные значения:
|
_content |
boolean |
Наличие в теле ответа данных о составе отчёта (набор источников и полей). Значение по умолчанию – false .Возможные значения:
|
_query |
string |
Параметры фильтрации данных в ответе. Запрос представляет собой выражение, состоящее из одного или нескольких условий отбора, объединённых логическими операциями. Формат условия отбора: Ключ:[Префикс]Значение .Префикс указывает на отношение неравенства. Допустимые префиксы: ! , < , > . При обращении к полям со строковыми значениями допускается использование только отношений «равно» и «не равно».Допустимые логические операции: ; (OR), , (AND).Строковые значения должны быть заключены в апострофы. Внутри них не допускается использование символов ;:,!<>'" .Пример: _query=month_quote:<10,day_quote:>1
|
_size |
integer | Количество отчётов на одной странице ответа. Допустимые значения: от 1 до 100. Значение по умолчанию – 100 |
_offset |
integer | Количество объектов в ответе, которые необходимо пропустить. Значение по умолчанию – 0 |
_page |
integer | Номер страницы ответа. Значение по умолчанию – 1 |
_sort |
string | Порядок сортировки. Поля указываются через запятую, - перед названием поля указывает на сортировку по убыванию. Пример: -day_quote,name |
_calc_total |
boolean |
Наличие в теле ответа переменной total – количество доступных типов отчётов. Значение по умолчанию – false .Возможные значения:
|
curl -X GET \
--header 'Accept: application/json' \
--header 'Authorization: AR-REST dGVzdF91c2VyQHRlc3RfZG9tYWluOjE0ODM2MzQ3MjM6OTk5OTk5OTk5OjN3ZzgyRXVUd2VjMjkvT3ZRN215eUE9PQ==' \
'https://b2bsync.spectrumdata.ru/b2b/api/v1/domain/report_types'
{
"size": 1,
"stamp": "2017-01-18T15:23:12Z",
"state": "ok",
"data": [
{
"comment": "очень значимая информация",
"name": "Тестовый тип отчета",
"state": "DRAFT",
"uid": "default@test",
"day_quote": 20,
"month_quote": 100,
"total_quote": 200,
"content": {},
"domain_uid": "default",
"max_age": 0,
"clean_options": {},
"min_priority": 1,
"max_priority": 200,
"tags": "main,test",
"created_at": "2017-19-01T23:15:56Z",
"max_request": 0,
"created_by": "sysadmin@sys",
"updated_at": "2017-19-01T23:15:56Z",
"updated_by": "admin@test",
"active_from": "2017-19-02T23:15:56Z",
"period_priority": 0,
"active_to": "2017-19-02T23:15:56Z",
"report_make_mode": "TRANSACTIONAL",
"meta_data": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"id": 123456,
"deleted": false
}
]
}
Для генерации отчёта отправьте POST-запрос к /user/reports/{REPORT_TYPE_UID}/_syncmake
.
В параметре REPORT_TYPE_UID
укажите нужный тип отчёта.
Используйте параметр запроса _content = true
, чтобы получить в ответе содержимое отчёта. Если параметр _content
не указан или имеет значение false
, ответ API будет содержать только заголовочную часть без данных отчёта.
В теле запроса передайте идентификаторы объекта, по которому должен формироваться отчёт. Структура тела запроса зависит от объекта поиска:
queryType
указывается вид идентификатора, а в query
— его значение;queryType
указывается значение MULTIPART
, в поле query
передаётся пробел, а идентифкаторы объекта поиска перечисляются в объекте data
.curl -X POST \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: AR-REST dGVzdF91c2VyQHRlc3RfZG9tYWluOjE0ODM2MzQ3MjM6OTk5OTk5OTk5OjN3ZzgyRXVUd2VjMjkvT3ZRN215eUE9PQ==' \
-d '{<тело запроса>}' \
'https://b2bsync.spectrumdata.ru/b2b/api/v1/user/reports/test_report_type@test_domain/_syncmake?_content=true'
{
"queryType": "MULTIPART",
"query": " ",
"data": {
"last_name": "Корнейчук",
"first_name": "Семен",
"patronymic": "Дмитриевич",
"birth": "16.01.1995",
"passport": "4218127156",
"passport_date": "30.05.2018"
}
}
{
"queryType": "GRZ",
"query": "А111АА77"
}
Сгенерированный отчёт содержится в теле ответа.
{
"state": "ok",
"size": 1,
"stamp": "2021-07-09T14:25:58.561Z",
"data": [
{
"domain_uid": "test_domain",
"report_type_uid": "test_report_type@test_domain",
"query": {
"type": "MULTIPART",
"body": " ",
"data": {
"last_name": "Корнейчук",
"first_name": "Семен",
"patronymic": "Дмитриевич",
"birth": "16.01.1995",
"passport": "4218127156",
"passport_date": "30.05.2018"
}
},
"progress_ok": 1,
"progress_error": 0,
"state": {
"sources": [
{
"_id": "check_person/person_inn",
"state": "OK",
"data": {}
}
]
},
"requested_at": "2021-07-07T07:42:27.008Z",
"content": {
"check_person": {
"inn": {
"status": "FOUND",
"value": "504724045776"
}
}
},
"last_generation_stat": {
"start_time": "2021-07-07T07:42:30.000Z",
"complete_time": "2021-07-07T08:42:30.000Z",
"duration": 60000
},
"uid": "report_2_1628749485392@test_domain",
"name": "NONAME",
"comment": "",
"tags": "",
"created_at": "2021-07-07T07:42:26.919Z",
"created_by": "system",
"updated_at": "2021-07-07T07:42:29.707Z",
"updated_by": "system",
"active_from": "1900-01-01T00:00:00.000Z",
"active_to": "3000-01-01T00:00:00.000Z"
}
]
}