I am developing a web service with Symfony3 and I am using Swagger-PHP 2.0.6 for documenting it.
To make it simple, here is what I am trying to achieve:
/**
* @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();
}
My route is define as so:
postUser:
path: /user
defaults: { _controller: MyBundle:User:registerUser }
methods: [POST]
Now here is the error that I have from Symfony:
Controller "MyBundle\Controller\UserController::registerUserAction()" requires that you provide a value for the "$user" argument (because there is no default value or because there is a non optional argument after this one). (500 Internal Server Error)
Workaround would be to pass the Request object instead to the controller and then get the values directly from $request->request but this is not what I am trying to achieve here.
So the question is, is there any way to achieve this? I remember I used to do it before on a Symfony2 application with Swagger 1.x
PS: I am also using Swagger-UI