Swagger2 添加请求头参数

时间:2024-03-14 19:47:25

使用Swagger在局域网的开发中是非常方便的,但如果项目需要异地进行开发的话,比如通过Nginx设置反向代理后,那么swagger的host域名需要设置成外网地址,而且有时会通过请求头的参数来识别某些信息。

1、host域名设置比较简单,只需要在swagger配置文件中  设置host();

2、添加请求头参数的话,通过 globalOperationParameters()方法 将请求头参数添加进去。

  在bootstrap.properties中设置域名为 swagger.host的值

spring.application.name=datacenter
spring.profiles.active=dev
swagger.host=xxx.xxx.xxx:8080

 swagger配置文件如下:

@Configuration
@EnableSwagger2
@PropertySource(value = "classpath:bootstrap.properties" ,ignoreResourceNotFound=true)
public class SwaggerConfig {

    @Value("${swagger.host}")
    private String host;

    @Bean
    public Docket api() {

        //添加head参数start
        ParameterBuilder tokenPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<Parameter>();
        tokenPar.name("real_source_ip").description("本机局域网IP").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
        pars.add(tokenPar.build());

        return new Docket(DocumentationType.SWAGGER_2)
                .host(host)
                .select()
                .apis(RequestHandlerSelectors.
                        basePackage("com"))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(pars);
    }
}

swagger-ui.html效果如下:

Swagger2 添加请求头参数