前几天开发项目的时候,使用了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","2016zsh@wlgzs.org")) 66 .description("年轻人的欢乐短视频社区") 67 .version("1.0").build(); 68 } 69 }