douhao7677 2016-02-20 17:31
浏览 256
已采纳

使用Swagger2和Symfony3检索POST参数

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

  • 写回答

1条回答 默认 最新

  • duanouyong4228 2016-02-21 20:03
    关注

    Well for those interested, I managed to make it work using a custom ParamConverter :)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog