如何使用 NelmioApiDocBundle 在 POST 请求中包含查询参数


How do I include a query parameter in a POST request using NelmioApiDocBundle?

我正在使用(并且是新手)Symfony 3和NelmioApiDocbundle。我想处理具有可选查询参数的 POST 请求。网址将如下所示:http://example.com/api/updateusers?token=some_long_value

这是我为我的注释尝试的:

/**
 * Returns a JSON object.
 *
 * @ApiDoc(
 *  resource=true,
 *  description="Update a user's information.",
 *  requirements={
 *      {
 *          "name"="userid",
 *          "dataType"="string",
 *          "requirement"=".+",
 *          "description"="the user to update"
 *      }
 *  },
 *  parameters={
 *    {"name"="data", "dataType"="text area", "required"=true, "description"="Free form xml data."}
 *  },
 *  filters={
 *    {"name"="token", "dataType"="string", "required"=true, "description"="auth token for current user - user that you're making the request on behalf of."},
 *  },
 * )
 * @Route("api/updateusers")
 * @Method("POST")
 */

要求、参数和筛选器都显示在 API 沙箱的 POST 正文中。我是否可以使用其他定义类型在 API 沙箱中显示查询参数?如果我绕过沙箱并将请求直接发送到服务器,则令牌将正确显示为 GET 值。但我希望能够使用 API 沙箱进行测试和文档编制。

尝试将其

添加到您的注释中,希望对您有所帮助。

@QueryParam(name="<your_name>", nullable=[true|false], requirements="'d+", description="<your_decription>")

导入类

use OpenApi'Annotations as OA;

并像这样使用

 * @OA'Parameter(
 *     name="per_page",
 *     in="query",
 *     description="Set the number of items per page by default 10",
 *     @OA'Schema(type="integer")
 * )
 *

如果您注意到"IN"属性是参数,则可以使用 in=query 或 in=body

希望这有帮助。