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

Большинством операций API можно управлять с помощью параметров. Что бы максимально эффективно использовать возможности платформы, необходимо их понимать.

Выбор полей

Выберите поля, которые будут возвращены в текущем наборе данных. Этот параметр поддерживает точечную нотацию для запроса вложенных реляционных полей. Вы также можете использовать подстановочный знак (*), чтобы включить все поля определенной глубины.

Примеры

Получить все поля верхнего уровня: *
Получить все поля верхнего уровня и все реляционные поля второго уровня: *.*

?fields=title,body,featured_image.*

// или

?fields[]=title
&fields[]=body
&fields[]=featured_image.*
1
2
3
4
5
6
7

Производительность и размер

Хотя подстановочные знаки полей (*) очень полезны для целей отладки, мы рекомендуем запрашивать только определенные поля для производственного использования. Запрашивая только те поля, которые вам действительно нужны, вы можете ускорить запрос и уменьшить общий размер вывода.

Получить все поля верхнего уровня и реляционные поля второго уровня в изображениях: *,images.*
Получить только поля с именем first_name и last_name: first_name,last_name
Получите все реляционные поля верхнего и второго уровня, а также поля третьего уровня в файлах images.thumbnails: *.*,images.thumbnails.*






Фильтр

Используется для поиска элементов в коллекции, соответствующих условиям фильтра. Параметр фильтра соответствует спецификации правил фильтрации, которая включает дополнительную информацию о логических операторах (И / ИЛИ), вложенной реляционной фильтрации и динамических переменных.

REST

Пример с обычным query

?filter[first_name][_eq]=Венгер

// or

?filter={ "first_name": { "_eq": "Венгер" }}
1
2
3
4
5

Зачастую библиотеки позволяют передавать query как обычный JSON в параметр запроса, поэтому в примерах будет использоваться именно он.

Примеры

Получить объекты где first_name равно "Венгер"

{
	"first_name": {
		"_eq": "Венгер"
	}
}
1
2
3
4
5

Получить объекты в одной из следующих категорий: "vegetables", "fruit"

{
	"categories": {
		"_in": ["vegetables", "fruit"]
	}
}
1
2
3
4
5

Получить объекты опубликованные между двух дат

{
	"date_published": {
		"_between": ["2021-01-24", "2021-02-23"]
	}
}
1
2
3
4
5

Получить объекты у которых авторы имеют установленный флаг "vip" на true. В данном случае мы обращаемся к связанным записям "author" и их полям.

{
	"author": {
		"vip": {
			"_eq": true
		}
	}
}
1
2
3
4
5
6
7





Поиск

Параметр поиска позволяет выполнять поиск по всем полям строкового/текстового типа в коллекции. Это простой способ поиска объектов без создания сложных фильтров полей, хотя он менее оптимизирован. В поиск включаются поля только корневого объекта, связанные поля элемента не включаются.

REST

?search="logexpert"
1

Найти объекты в которых упоминается logexpert






Сортировка

Указание по какому полю сортировать. По умолчанию сортировка выполняется по возрастанию, но можно использовать знак (-), чтобы изменить порядок сортировки по убыванию.

REST

?sort=sort,-date_created

// or

?sort[]=sort
&sort[]=-date_created
1
2
3
4
5
6

Примеры

Сортировать по дате создания по убыванию -date_created

Сортировать по полю "sort", затем по дате публикации по убыванию sort, -publish_date






Лимитирование

Установить максимальное количество возвращаемых объектов. По умолчанию установлен на 100.

REST

?limit=200
1

Что бы вернуть все элементы, необходимо указать значение -1

Все элементы

В зависимости от размера вашей коллекции получение неограниченного количества данных может привести к снижению производительности или тайм-аутам.
Используйте с осторожностью.






Смещение

Пропускает первые n объектов в возвращаемом результате. Может использоваться для пагинации.

REST

?offset=100
1

Страница

Удобная альтернатива смещению.

REST

?page=2
1

Равносильно offset=100 с лимитом по умолчанию, выведет объекты в диапазоне 101-200