Получить POST-параметр с помощью Swagger2 & amp; Symfony3

Я разрабатываю веб-сервис с Symfony3, и я использую Swagger-PHP 2.0.6 для документирования.

Чтобы упростить это, вот что я пытаюсь достичь:

/**
* @SWG\Post(path="/user",
*   tags={"user"},
*   summary="Registers a new user",
*   operationId="registerUserAction",
*   produces={"application/json"},
*   @SWG\Parameter(
*     in="body",
*     name="user",
*     description="User to register",
*     required=true,
*     @SWG\Schema(ref="#/definitions/UserInput")
*   ),
*   @SWG\Response(
*     response=200,
*     description="User registered"*   ),
*   @SWG\Response(
*     response=400,
*     description="Invalid input"*   )
* )
* @var UserInput $user
* @return JsonResponse
**/
public function registerUserAction(UserInput $user)
{
// Do stuff with the user model

return new JsonResponse();
}

Мой маршрут определяется так:

postUser:
path: /user
defaults: { _controller: MyBundle:User:registerUser }
methods: [POST]

Теперь вот ошибка, которую я имею от Symfony:

Контроллер «MyBundle \ Controller \ UserController :: registerUserAction ()» требует, чтобы вы указали значение для аргумента «$ user» (потому что
нет значения по умолчанию или потому что есть необязательный аргумент
после этого). (500 — внутренняя ошибка сервера)

Обходной путь должен был бы передать объект Request вместо этого к контроллеру и затем получить значения непосредственно от $ request-> request, но это не то, чего я пытаюсь достигнуть здесь.

Итак, вопрос в том, есть ли способ достичь этого? Я помню, что раньше делал это в приложении Symfony2 с Swagger 1.x

PS: я также использую Swagger-UI

1

Решение

Ну, для тех, кто заинтересован, мне удалось заставить его работать с помощью пользовательских ParamConverter 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]