Передайте стратегию поиска для фильтрации из остальных 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) и представлен с его благословения.

Другие вопросы по тегам