Параметры запроса
Большинством операций API можно управлять с помощью параметров. Что бы максимально эффективно использовать возможности платформы, необходимо их понимать.
Выбор полей
Выберите поля, которые будут возвращены в текущем наборе данных. Этот параметр поддерживает точечную нотацию для запроса вложенных реляционных полей. Вы также можете использовать подстановочный знак (*), чтобы включить все поля определенной глубины.
Примеры
Получить все поля верхнего уровня: *
Получить все поля верхнего уровня и все реляционные поля второго уровня: *.*
?fields=title,body,featured_image.*
// или
?fields[]=title
&fields[]=body
&fields[]=featured_image.*
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": "Венгер" }}
2
3
4
5
Зачастую библиотеки позволяют передавать query как обычный JSON в параметр запроса, поэтому в примерах будет использоваться именно он.
Примеры
Получить объекты где first_name равно "Венгер"
{
"first_name": {
"_eq": "Венгер"
}
}
2
3
4
5
Получить объекты в одной из следующих категорий: "vegetables", "fruit"
{
"categories": {
"_in": ["vegetables", "fruit"]
}
}
2
3
4
5
Получить объекты опубликованные между двух дат
{
"date_published": {
"_between": ["2021-01-24", "2021-02-23"]
}
}
2
3
4
5
Получить объекты у которых авторы имеют установленный флаг "vip" на true. В данном случае мы обращаемся к связанным записям "author" и их полям.
{
"author": {
"vip": {
"_eq": true
}
}
}
2
3
4
5
6
7
Поиск
Параметр поиска позволяет выполнять поиск по всем полям строкового/текстового типа в коллекции. Это простой способ поиска объектов без создания сложных фильтров полей, хотя он менее оптимизирован. В поиск включаются поля только корневого объекта, связанные поля элемента не включаются.
REST
?search="logexpert"
Найти объекты в которых упоминается logexpert
Сортировка
Указание по какому полю сортировать. По умолчанию сортировка выполняется по возрастанию, но можно использовать знак (-), чтобы изменить порядок сортировки по убыванию.
REST
?sort=sort,-date_created
// or
?sort[]=sort
&sort[]=-date_created
2
3
4
5
6
Примеры
Сортировать по дате создания по убыванию -date_created
Сортировать по полю "sort", затем по дате публикации по убыванию sort, -publish_date
Лимитирование
Установить максимальное количество возвращаемых объектов. По умолчанию установлен на 100.
REST
?limit=200
Что бы вернуть все элементы, необходимо указать значение -1
Все элементы
В зависимости от размера вашей коллекции получение неограниченного количества данных может привести к снижению производительности или тайм-аутам.
Используйте с осторожностью.
Смещение
Пропускает первые n объектов в возвращаемом результате. Может использоваться для пагинации.
REST
?offset=100
Страница
Удобная альтернатива смещению.
REST
?page=2
Равносильно offset=100 с лимитом по умолчанию, выведет объекты в диапазоне 101-200