我正在使用(并且是新手)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
希望这有帮助。