首页 > 解决方案 > Swagger UI 不显示所有标题值

问题描述

我有带有标头的 Spring Boot REST 控制器,它可以有超过 1 个值:

@RestController
@RequestMapping(value = "/example", headers = {"version=v1", "version=v2"})
@Api(value = "Example API")
public class ExampleController {

并使用 Swagger 的 Springfox 实现。当我加载 Swagger UI 时,我只能从版本标题列表中看到并选择 v1 选项。如何在 Swagger UI 中显示要选择的所有标题值?如何更改 Swagger UI 列表中的默认标题值?

标签: javaspringspring-bootswaggerswagger-ui

解决方案


在控制器方法上使用 ApiImplicitParams:

@ApiImplicitParams({
    @ApiImplicitParam(name = "version", allowableValues="v1,v2", required = false, dataType = "String", paramType = "header")
})

使用allowableValues

  1. 要设置值列表,请提供逗号分隔的列表。例如:第一、第二、第三。
  2. 要设置值的范围,请以“范围”开始值,方括号括起来包括最小值和最大值,或圆括号表示不包括最小值和最大值。例如:范围[1, 5]、范围(1, 5)、范围[1, 5)。
  3. 要设置最小/最大值,请使用相同的范围格式,但使用“infinity”或“-infinity”作为第二个值。例如 range[1, infinity] 表示该参数的最小允许值为 1。

推荐阅读