springfox-swagger-ui:如何从全局参数中排除路由

springfox-swagger-ui: How to exclude routes from global parameter

假设我为所有 API 创建了一个全局参数 token

    List<Parameter> commonParameters = new ArrayList<>();
    commonParameters.add(new ParameterBuilder()
        .name("token")
        .description("Token for api access")
        .modelRef(new ModelRef("string"))
        .parameterType("header")
        .required(true)
        .build());
    return new Docket(DocumentationType.SWAGGER_2)
        .globalOperationParameters(commonParameters)
       // rest ignored .....

几乎每个 API 都需要此令牌,但可以公开访问的除外。如何从全局操作参数中排除这个API?

目前未提供对 globalOperationParameters 的排除,在此 GitHub issue 中有一个开放的功能请求。

我发现的唯一解决方法是使用 @ApiImplicitParams 注释覆盖全局定义的 header。

所以在你的情况下:

@ApiImplicitParams({
        //Overriding global behavior.
        @ApiImplicitParam(
                name = "token")
})

不幸的是,header 在 swagger 上仍然可见,但参数不会被标记为必需。