РЕДАКТИРОВАТЬ:
Это происходит только когда Entity параметра реализует интерфейс.
Я разрабатываю API Symfony 4.4 , и я использую, в частности, следующие пакеты:
- NelMioApiBundle -> nelmio / api-do c - bundle 3.6.1
- FosRestBundle -> friendsofsymfony / rest-bundle 2.7.3
Я использую аннотации Swagger документировать остальные API. Все работает, но мне интересно, как автоматически документировать входящий параметр в getAction () без явной аннотации @Route. Это работало в старой документации @ ApiDo c, но я не могу автоматически сгенерировать параметр url с помощью Swagger.
Я объясню на примере:
Старая @ ApiDo c документация
/**
* Returns content page
* @ApiDoc(
* section="Page",
* headers={
* {"name"="authorization", "description"="Bearer {token}", "required"="true"}
* }
* )
*
* @param ContentPage $page
* @return \Symfony\Component\HttpFoundation\Response
*/
public function getAction(ContentPage $page)
{
return $this->serialize($page);
}
вернула эту конечную точку в документации:
Но теперь, если я добавлю эти аннотации:
/**
* @SWG\Get(
* summary="Page",
* description="Get page",
* @SWG\Response(
* response=200,
* description="Get page",
* @Model(type=PageData::class)
* )
* )
* @SWG\Parameter(
* name="pageData",
* in="path",
* type="number",
* description="The page data id"
* )
*
* @param PageData $pageData
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function getAction(PageData $pageData) {
return $this->serialize($pageData);
}
Я получу это:
Но , чтобы получить это:
Мне нужно явно добавить эту аннотацию
@Rest\Route("/page-data/{pageData}")
Я не хочу этого делать, потому что я использую префиксы и все FosRest автоматически маршрутизирует поколения, было бы бесполезно использовать FosRest, а затем явно express @Route аннотацию в каждой конечной точке GET.
Я думаю, что я просто что-то упустил .. Кто-нибудь знает, как получить это поведение без использования аннотаций @Route?
Спасибо!