К содержимому

Фильтры на выборки

Запросы на получение списка сущностей поддерживают возможность применения следующих фильтров:

  • по соответствию поля заданному значению, например status=created
  • по массиву значений: status[]=created&status[]=completed
  • с применением операторов сравнения:
ОператорОписаниеТипы значенийПример
_eqравновсе типыstatus[_eq]=created, эквивалент status=created
_neне равновсе типыstatus[_ne]=created
_gtстрого большеint, floatamount[_gt]=1000
_geбольше или равноint, floatamount[_ge]=1000
_ltстрого меньшеint, floatamount[_lt]=1000
_leменьше или равноint, floatamount[_le]=1000
_startначинается сstringname[_start]=John

Сортировки выборок

Для сортировки данных используется параметр _order. Ключ — имя свойства объекта, а значение - порядок сортировки. Сортировку можно проводить по нескольким полям, например: _order[categoryId]=asc&_order[name]=desc

Постраничный вывод

Постраничность задают два параметра с подчёркиванием: _pageSize — сколько элементов на странице, и _page — номер страницы, например _pageSize=5&_page=2. Без _pageSize на странице 30 элементов.

Важно

Подчёркивание обязательно. Параметры page и pageSize без него API молча игнорирует: в ответ приходит первая страница с тридцатью элементами, и metaData.page остаётся равным 1. Если вы листаете выборку в цикле, сверяйте metaData.page с запрошенным номером — иначе цикл будет читать одну и ту же страницу.

GET /v3/filter/api/order/order?_pageSize=5&_page=2

Формат ответа выборки

Выборка отвечает не массивом, а объектом с тремя свойствами:

{
  "data": [ /* найденные объекты */ ],
  "metaData": {
    "totalCount": 5965,
    "page": 1,
    "pageSize": 30
  },
  "extendedData": []
}
  • data — сами объекты; когда ничего не нашлось, это пустой массив, а не отсутствующее поле;
  • metaData.totalCount — сколько записей подходит под фильтр целиком, а не на текущей странице: по нему считают число страниц;
  • metaData.page и metaData.pageSize — что сервер понял из запроса. Это же и проверка: если вы просили вторую страницу, а в ответе page: 1, значит параметры не приняты (частая причина — забытое подчёркивание);
  • extendedData — служебное поле, у выборок заказов пустое.

Разбирать ответ нужно именно так: response.data, а не сам ответ как массив. Это общий формат всех выборок — заказов, возвратов, отгрузок, счетов.

Страница помогла?