У меня есть проект Symfony, где я использую api-платформу.
У меня есть субъект, и у меня есть поставщики данных для него. У меня проблемы с определением дополнительных параметров для конечной точки сбора.
Сущность называется внушением. Он должен вернуть коллекцию документов из упругого поиска.
Конечная точка:
/suggestion
Эта конечная точка прослушивает дополнительные параметры GET:
страница, уровень
Эти два параметра читаются каждый раз, когда запрашивается конечная точка.
В моем SuggestionsCollectionDataProvider.php
классе у меня есть:
/**
* Retrieves a collection.
*
* @param string $resourceClass
* @param string|null $operationName
* @return \Generator
*/
public function getCollection(string $resourceClass, string $operationName = null): \Generator
{
$query = $this->requestStack->getCurrentRequest()->query;
// I am reading these two parameters from RequestStack
// this one is built-in
$page = max($query->get('page', 1), 1);
// this is a custom one
$level = $query->get('level', 0);
...
В моем SuggestionRepository.php
классе:
/**
* @return \Generator
*/
public function find(int $page, int $level): \Generator
{
// here I can process with $level without problems
Page параметр является параметром по умолчанию, который генерируется в swagger для коллекций.
Скриншот сгенерированного платформой API Swagger doc:
Но параметр page теперь единственный параметр , который можно редактировать в веб-версии.
Мне нужно добавить больше параметров (level
в данном случае) к сваггеру и описать их, чтобы пользователь / тестировщик знал, какой параметр фактически идет к этой конечной точке.
Основной вопрос:
Как сообщить api-платформе, что я хочу, чтобы пользователь / тестер API (со стороны клиента) вводил некоторые другие параметры, например, level
?
Я два дня изучаю все документы, примеры и не могу понять:)