Swagger2 模拟请求头

  前几天开发项目的时候,使用了Restful风格的接口。进行开发的时候,模拟请求头,带Token的时候遇到了一些问题。因为Api接口使用Swagger2进行搭建,所以找到了Swagger2 模拟header的方法。

  注意,当header需要多个参数的时候,新建多个 ParameterBuilder,经过我的测试,重复使用一个ParameterBuilder会出现后面覆盖前面的情况。 

 1 package qqzsh.top.hd.config;
 2 
 3 import org.springframework.context.annotation.Bean;
 4 import org.springframework.context.annotation.Configuration;
 5 import springfox.documentation.builders.ApiInfoBuilder;
 6 import springfox.documentation.builders.ParameterBuilder;
 7 import springfox.documentation.builders.PathSelectors;
 8 import springfox.documentation.builders.RequestHandlerSelectors;
 9 import springfox.documentation.schema.ModelRef;
10 import springfox.documentation.service.ApiInfo;
11 import springfox.documentation.service.Contact;
12 import springfox.documentation.service.Parameter;
13 import springfox.documentation.spi.DocumentationType;
14 import springfox.documentation.spring.web.plugins.Docket;
15 import springfox.documentation.swagger2.annotations.EnableSwagger2;
16 
17 import java.util.ArrayList;
18 import java.util.List;
19 
20 /**
21  * @author zsh
22  * @site www.qqzsh.top
23  * @company wlgzs
24  * @create 2019-05-28 21:34
25  * @description Swagger2配置
26  */
27 @Configuration
28 @EnableSwagger2
29 public class Swagger2Config {
30 
31     /**
32      * Restful风格的接口
33      * @return
34      */
35     @Bean
36     public Docket createRestApi(){
37 
38         //添加head参数配置start
39         ParameterBuilder tokenPar = new ParameterBuilder();
40         ParameterBuilder tokenPar2 = new ParameterBuilder();
41         List<Parameter> pars = new ArrayList<>();
42         tokenPar.name("headerUserId").description("用户ID").
43                 modelRef(new ModelRef("string")).
44                 parameterType("header").
45                 required(false).build();
46         tokenPar2.name("headerUserToken").description("用户token").
47                 modelRef(new ModelRef("string")).
48                 parameterType("header").required(false).build();
49         pars.add(tokenPar.build());
50         pars.add(tokenPar2.build());
51 
52         return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
53                 .apis(RequestHandlerSelectors.basePackage("qqzsh.top.hd.controller"))
54                 .paths(PathSelectors.any()).build()
55                 .globalOperationParameters(pars);
56     }
57 
58     /**
59      * 页面显示的开发者个人信息
60      * @return
61      */
62     private ApiInfo apiInfo(){
63         return new ApiInfoBuilder()
64                 .title("嗨抖短视频API接口文档")
65                 .contact(new Contact("zsh","http://qqzsh.top","[email protected]"))
66                 .description("年轻人的欢乐短视频社区")
67                 .version("1.0").build();
68     }
69 }

猜你喜欢

转载自www.cnblogs.com/zsh-blogs/p/10963277.html