Spring boot swagger为应用程序配置全局标头

时间:2017-06-09 15:09:50

标签: spring spring-mvc spring-boot swagger-ui swagger-2.0

我正在使用 spring-boot-1.4.5 开发微服务。我们在MDC中设置了少量标头,同时发生了微服务之间的交互。这些标头在微服务/应用程序中是通用的。每个应用程序中都有一个拦截器,如果它不存在,它将检查这个标题,这个调用将不会到达控制器。所以一切正常。问题是每个应用程序或服务都暴露了一个swagger-UI( swagger-ui:2.6.1 )。

我能够在应用程序中看到swagger-ui和所有端点,但我不知道如何在每个端点下显示全局标头字段。

如何自定义swagger以在每个端点下显示这些全局标头? 任何帮助或提示都会很明显我也浏览谷歌并看到其他没用的帖子或我无法正确掌握这些内容。

1 个答案:

答案 0 :(得分:0)

要设置全局参数,请使用ParameterBuilder构建springfox.documentation.service.Parameter并将其设置为globalOperationParameters。

    @Bean
    public Docket api() {
        Parameter headerParam = new ParameterBuilder().name("TenantId").defaultValue("microservices").parameterType("header")
                .modelRef(new ModelRef("string")).description("Tenant Identity").required(true).build();

        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                .globalOperationParameters(Arrays.asList(headerParam))
          .select()                                  
          .apis(RequestHandlerSelectors.basePackage("com.app"))              
          .paths(PathSelectors.any())                          
          .build();

    }