前幾天開發項目的時候,使用了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 }
