Пагинация, фильтрация и сортировка
Для указания сортировки и пагинации запроса используйте следующие query-параметры:
pagination.offset— смещение относительно начала отсортированного и отфильтрованного результативного набора данных.Например:
0— для начала набора,10— начиная с 10-ой записи набора данных. Значение смещения — абсолютное и не может быть отрицательным числом.pagination.limit- количество возвращаемых записей отсортированного и отфильтрованного результативного набора данных. Лимитирование используется всегда — если в запросе указывается0, то все равно возвращается лимитированное значение записей, принятое по умолчанию (в разных сервисах это разное число).pagination.order- конфигурация сортировки отфильтрованного результативного набора данных. При указании сортировки необходимо указать список полей сортировки, разделенных через запятую, например: "name, cost".- Сортировка может быть двух видов: по возрастанию (
asc) и по убыванию (desc). Сортировка по умолчанию -asc. Можно задать порядок сортировки явно, указывая его тип через пробел после имени поля, например: "name asc, cost desc".
filter.attr- простое выражение фильтра для одиночного атрибутаattr. Например, если необходимо поддержать фильтр для атрибутаname, то необходимо использоватьfilter.namequery-параметр.- Поиск для текстовых полей производится без учета регистра значения.
- При поиске строк используется поиск по вхождению значения фильтра - то есть осуществляется не точный поиск. Например, для
filter.name=alexбудут отобраны записи "alexander" и "alexey". - Для кодов поиск всегда осуществляется точный поиск.
Пример URL запроса:
http://<api_gateway>/apis/projects/v1/projects?pagination.offset=30&pagination.limit=10&pagination.order=name desc&filter.name=john
В ответе в JSON будет присутствовать вложенный объект pagination с полным перечислением атрибутов limit, offset и order.
Ответ:
{
"projects": [
{
"id": "string",
"name": "string",
"description": "string",
"createdBy": "string",
"createdAt": "2022-09-18T05:47:59.478Z",
"updatedAt": "2022-09-18T05:47:59.478Z"
}
],
"pagination": {
"limit": 10,
"offset": 30,
"order": "name desc"
}
}