我正在我的Sping Boot 应用程序中使用Springfox Swagger 2版本2.4.0、Springfox Swagger UI版本2.4.0和Swagger注解版本1.5.0。
这里的问题是,我能够为我的控制器的API生成swagger UI,并且我能够测试它。但是我不能为我的请求头指定请求头描述。我使用@RequestHeader注解。
我的控制器API中的代码片段如下所示:@RequestHeader(name = "Api-Key") String apiKey
请求标题的Swagger UI如下所示:
图像中突出显示的矩形区域表示请求标头的说明。
目前,它只是提取名称属性中提到的数据并显示它。但我想对相同的数据给予不同的描述。例如,“许可证密钥的值”
我怎样才能在Swagger UI中实现这一点,因为@RequestHeader注解只有值、默认值、名称和必需的属性?任何帮助都将不胜感激。
更新:寻找一个开箱即用的解决方案,没有任何我自己的自定义注解
4条答案
按热度按时间lo8azlld1#
也许我的答案能帮到一些人。
正如在his answer中提到的Dilip Krishnan,您可以使用
io.swagger.annotations.ApiParam
或io.swagger.annotations.ApiImplicitParam
Swagger注解对自定义文档进行微调。@ApiParam
可用于已注册的方法参数。如果API参数未显式注册,则可以使用
@ApiImplicitParam
。最后你可以看到下面这张图
pwuypxnk2#
TL;DR是你必须建立你自己的插件来做这件事。
基本上,在这种情况下,唯一能够增强描述的现成注解是
@ApiParam
,更准确地说是@ApiImplicitParam
。因此,我的建议是:
1.创建您自己的注记,如下所示
@RequestHeader(name = "Api-Key") @Description("Value of license key") String apiKey
注意:已经有一个annotation in spring适用于此。
1.创建您自己的ParameterBuilderPlugin
1.如下所示实现插件
1.拾取在处理了Swagger标注之后应用的顺序值。
另外,请将您的springfox库升级到latest version。
v09wglhw3#
我们遇到了同样的问题,并通过以下方式解决了该问题:
这个想法是在生成的swagger中添加“描述”字段。它可能看起来很笨拙,但它是一个快速简单的解决方案,在你的个人情况下可能很有用。
xlpyo6sf4#
快速、简单有效的解决方案是使用
enum
,例如:下面将显示出昂首阔步:可用值:
A, B, C
个