Skip to main content

Параметры тела запроса

Эта страница описывает общую структуру body только для тех REST API-методов MPSTATS, которые принимают параметры пагинации, сортировки и фильтрации в теле запроса. В основной документации такие методы будут явно помечены, а описание параметров будет продублировано ссылкой на эту страницу.

Оглавление

Базовая структура тела запроса

{
"startRow": 1,
"endRow": 100,
"filterModel": {},
"sortModel": []
}

Описание полей:

ПолеТипОписание
startRownumberНомер строки начала получения данных
endRownumberНомер строки конца получения данных
filterModelobjectНабор фильтров
sortModelarrayМодель сортировки

Ограничение:

  • за один вызов запроса можно получить не более 5000 записей

Базовая структура тела ответа

{
"startRow": 0,
"endRow": 100,
"filterModel": {},
"sortModel": [],
"total": 42,
"data": [{ "...": "..." }]
}

Описание полей:

ПолеТипОписание
startRownumberНомер строки начала получения данных
endRownumberНомер строки конца получения данных
filterModelobjectФильтры, переданные в запросе
sortModelarrayСортировка, переданная в запросе
totalnumberОбщее количество строк без учета пагинации
dataarrayМассив данных

Пагинация данных

Свойства, относящиеся к разбивке на страницы:

{
startRow: number,
endRow: number,
... // остальные параметры
}

Сортировка данных

Пример модели сортировки:

{
"sortModel": [
{ "colId": "balance", "sort": "asc" },
{ "colId": "sales", "sort": "desc" }
]
}

Фильтрация данных

Текстовые фильтры

interface TextFilterModel {
filterType: string; // всегда "text"
type: string; // тип фильтра, например "equals"
filter?: string;
}

Числовые фильтры

interface NumberFilterModel {
filterType: string; // всегда "number"
type: string; // тип фильтра, например "equals"
filter?: number;
filterTo?: number;
}

Фильтры по дате

interface DateFilterModel {
filterType: string; // всегда "date"
type: string; // тип фильтра, например "equals"
filter?: string;
filterTo?: string;
}

Для дат используется строковый формат YYYY-MM-DD, например 2019-05-24.

Примеры модели фильтра

Числовой фильтр с одним условием:

{
"balance": {
"filterType": "number",
"type": "lessThan",
"filter": 35
}
}

Числовой фильтр с диапазоном:

{
"balance": {
"filterType": "number",
"type": "inRange",
"filter": 35,
"filterTo": 40
}
}

Если фильтр содержит два условия, используется комбинированная модель:

interface ICombinedSimpleModel<M> {
filterType: string;
operator: string; // "AND" или "OR"
condition1: M;
condition2: M;
}

Пример фильтра с двумя условиями:

{
"balance": {
"filterType": "number",
"operator": "OR",
"condition1": {
"filterType": "number",
"type": "equals",
"filter": 18
},
"condition2": {
"filterType": "number",
"type": "equals",
"filter": 19
}
}
}

Типы фильтров

ПараметрЗначениеПоддерживаемые типы
Равноequalstext, number, date
Не равноnotEqualtext, number, date
Содержитcontainstext
Не содержитnotContainstext
Начинается сstartsWithtext
ЗаканчиваетсяendsWithtext
Меньше, чемlessThannumber, date
Меньше или равноlessThanOrEqualnumber
Больше чемgreaterThannumber, date
Больше или равноgreaterThanOrEqualnumber
В диапазонеinRangenumber, date

Практический способ быстрее понять модель фильтрации и сортировки — посмотреть реальные тела запросов к серверу через инструменты разработчика в браузере.

Методы со сравнением периодов

Для отдельных методов используется расширенная версия body, в которой дополнительно передаются две пары дат для сравнения периодов.

Тело запроса

{
"startRow": 0,
"endRow": 100,
"filterModel": {},
"sortModel": [],
"d11": "2023-10-18",
"d12": "2023-10-19",
"d21": "2023-10-19",
"d22": "2023-10-20"
}

Описание дополнительных полей:

ПолеТипОписание
d11stringНачальная дата первого периода
d12stringКонечная дата первого периода
d21stringНачальная дата второго периода
d22stringКонечная дата второго периода

Тело ответа

{
"data": [{ "...": "..." }, { "...": "..." }],
"total": 12401,
"pinnedBottom": {
"sales_count_1": 125570,
"sales_count_2": 119968,
"revenue_1": 278206980,
"revenue_2": 264340823,
"sales_count_diff": -5602,
"revenue_diff": -13866157
}
}

Описание поля pinnedBottom:

ПолеОписание
sales_count_1Количество продаж в первом периоде
sales_count_2Количество продаж во втором периоде
revenue_1Выручка в первом периоде
revenue_2Выручка во втором периоде
sales_count_diffРазница продаж между первым и вторым периодом
revenue_diffРазница выручки между первым и вторым периодом