设置 Nelmio ApiDoc 返回参数说明

Posted

技术标签:

【中文标题】设置 Nelmio ApiDoc 返回参数说明【英文标题】:set Nelmio ApiDoc return parameter description 【发布时间】:2017-09-25 20:21:37 【问题描述】:

在我们控制器的 ApiDoc 中,我们已经指定了输出响应对象,现在我们看到了所有返回参数的列表。 我们如何为此列表中的版本和/或描述字段提供值?

我尝试将@ApiDoc(description="text") 添加到响应对象的参数中,但这似乎没有任何作用。

提前致谢。

【问题讨论】:

【参考方案1】:

我没有使用 nelmioApiDoc,但查看它的文档,在注释部分使用 description="text" 似乎是正确的。您是否尝试过清除缓存:

php bin/console cache:clear --env=prod

不确定是否相关。

使用了这个section describes how versioning objects,看起来你必须在你的JMSSerializerBundle 类中使用@Until("x.x.x")@Since("x.x")。 See this link.

【讨论】:

【参考方案2】:

这是我的一个项目中的有效 API 方法:

/**
     * Get an extended FB token given a normal access_token
     *
     * @ApiDoc(
     *  resource=true,
     *  requirements=
     *      
     *          "name"="access_token",
     *          "dataType"="string",
     *          "description"="The FB access token",
     *          "version" = "1.0"
     *      
     *  ,
     *  views =  "facebook" 
     * )
     * @Get("/extend/token/access_token", name="get_extend_fb_token", options= "method_prefix" = false , defaults="_format"="json")
     */
    public function getExtendTokenAction(Request $request, $access_token)
    
        //...
    

返回的所有 APIDoc 参数都归入“要求”下。

【讨论】:

【参考方案3】:

我今天浏览了ApiDocBundle,发现Description 来自于@VirtualProperty 对模型属性或方法的评论。

例如:

/**
 * This text will be displayed as the response property's description
 *
 * @var \DateTime
 * @JMS\Type("DateTime<'Y-m-d\TH:i:sO'>")
 */
protected $dateTimeProperty;

/**
 * VirtualProperty comment
 *
 * @JMS\Type("integer")
 * @JMS\VirtualProperty()
 * @return integer
 */
public function getVirtualProperty()

    return $this->someFunc();

这同样适用于控制器方法上的所有 cmets。

【讨论】:

您知道如何将version 添加到单独的属性吗?

以上是关于设置 Nelmio ApiDoc 返回参数说明的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Nelmio ApiDocBundle 中指定参数的格式

为啥自定义路由在 Nelmio API Doc 中出现两次?

Symfony:在 nelmio api 文档中输出示例图像?

Nelmio Api Doc Bundle:记录所需参数

课堂笔记 170505 方法

网络推币机接口文档开发解决方案