【发布时间】:2017-07-09 23:20:21
【问题描述】:
我在我的 Spring Boot 应用程序中使用 Springfox Swagger2 2.4.0 版、Springfox Swagger UI 2.4.0 版和 Swagger Annotations 1.5.0 版。
这里的问题是,我能够为我的控制器的 API 生成 swagger UI,并且我能够对其进行测试。但我无法为我的请求标头指定请求标头描述。我正在使用 @RequestHeader 注释。
我的控制器 API 中的代码 sn-p 如下:
@RequestHeader(name = "Api-Key") String apiKey
请求头的Swagger UI如下:
图片中高亮的矩形区域代表请求头的描述。
目前它只是拾取 name 属性中提到的数据并显示它。但我想给出不同的描述。即“许可证密钥的值”
我如何在 Swagger UI 中实现这一点,因为 @RequestHeader 注释只有值、默认值、名称和必需的属性?任何帮助将不胜感激。
更新:寻找开箱即用的解决方案,无需我自己的任何自定义注释
【问题讨论】:
-
不明白为什么这个问题被否决了两次?
-
我完全按照描述与 RequestHeader 混淆了。 ApiParam(name, value, ..) 对我来说很有意义,并且 #value() 被明确描述为“描述”(在我的例子中是 io.swagger.annotations v2.9.2)。然而,@RequestHeader 的接口声明(在我的例子中是 spring-web.bind.annotations 5.0.12)声明 #value() 带有 AliasFor("name") 和 #name() 带有 AliasFor("value") 其中同时设置两者会导致渲染错误。这是一个错误还是应该反转 RequestHeader::value() 应该将模拟 ApiParam::value() 作为描述字段?
标签: spring-boot swagger swagger-ui swagger-2.0 springfox