Фильтры и сортировка
Фильтр — это параметр запроса, названный так же, как поле схемы.
Точное совпадение
?role=admin
Значение поля сравнивается с переданным как строка, посимвольно.
Подстрока
?name_like=петр
Совпадение в любом месте значения, регистр не учитывается.
Диапазон чисел
?age_gt=18&age_lt=65
Работает только для числовых полей. Обе границы строгие: _gt — строго больше, _lt — строго меньше. Чтобы ограничить диапазон с одной стороны, передайте один параметр.
Запись, у которой в числовом поле оказалась строка, в такую выборку просто не попадёт. Ошибки при этом не будет: схема не запрещает такие записи.
Сортировка
?_sort=age&_order=desc
Числовые поля сортируются как числа, а не как строки, иначе 9 оказалось бы больше 10. Записи с одинаковым значением дополнительно упорядочены по id — без этого при листании страниц одна и та же запись могла бы встретиться дважды или не встретиться вовсе.
Опечатка в имени поля — это ошибка, а не пустой список
Фильтр по полю, которого нет в схеме, отвечает 400 и называет поле:
{"error":"unknown_field","field":"rolle"}. Пустой ответ выглядел бы как «таких записей нет», и опечатку пришлось бы искать самому.
Совмещение
Несколько фильтров действуют одновременно: запись должна подойти под все. Сортировка и разбивка на страницы применяются уже к отобранным записям, и X-Total-Count считает тоже их, а не всю коллекцию.