Php 使用Swagger2&;检索POST参数;Symfony3

Php 使用Swagger2&;检索POST参数;Symfony3,php,symfony,swagger,swagger-ui,swagger-2.0,Php,Symfony,Swagger,Swagger Ui,Swagger 2.0,我正在用Symfony3开发一个web服务,并用它来记录文档 简单地说,以下是我试图实现的目标: /** * @SWG\Post(path="/user", * tags={"user"}, * summary="Registers a new user", * operationId="registerUserAction", * produces={"application/json"}, * @SWG\Parameter( * in="body",

我正在用Symfony3开发一个web服务,并用它来记录文档

简单地说,以下是我试图实现的目标:

/**
 * @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获取值,但这不是我在这里试图实现的

所以问题是,有没有办法做到这一点?我记得我以前在使用Swagger 1.x的Symfony2应用程序上做过


注:我还使用了Swagger UI

对于那些感兴趣的人来说,我成功地使用了自定义:)

对于那些感兴趣的人来说,我成功地使用自定义:)