Передайте стратегию поиска для фильтрации из остальных URI
Впервые использую api-платформу и Symfony 4 для создания интерфейса API для базы данных MySQL.
Я обновляю старый интерфейс поиска для БД, для которого мне нужно реплицировать многие параметры поиска. Это включает в себя возможность поиска по заданному полю с использованием различных подходящих операторов / стратегий. например, начинается с, содержит ровно равных и т. д.
Я настроил все для API с помощью аннотаций.
Аннотация @ApiFilter(SearchFilter::class, properties={"fieldname": "стратегии"} для моего класса таблицы работает так, как задумано, но я ограничен единственной стратегией на поле. Мне нужно иметь возможность передать стратегию в функцию поиска API в URL.
/api/staff?lastname[start]=dav
или же
/api/staff?lastname=david&match=contains
или же
/api/staff/lastname/son?searchtype=end
было бы хорошо.
Я не могу понять, как это настроить. Шокирующе, в любом случае, мне кажется, что это общее требование не задокументировано вообще.
0 ответов
Файл CustomSearchFilter.php, расположенный в репозитории https://github.com/jordonedavidson/custom_search_filter, решает этот вариант использования с использованием
/api/staff?lastname[start]=dav
синтаксис.
Файл был написан Кевином Дунгласом (автором Api Platform) и представлен с его благословения.