swagger模拟请求添加请求头有两种方式:
一:单个方法设置请求头
使用@ApiImplicitParam注解,放在Controller某方法上。
//name是名称,value是描述,注意paramType="header"
@ApiImplicitParam(name = "Authorization", value = "Authorization",required = true, dataType = "String",paramType="header")
@GetMapping("/getEnterpriseInfo")
public RestBody<SysEnterprise> getEnterpriseInfo(@RequestParam("id") String id) {
SysEnterprise sysEnterprise = sysEnterpriseMapper.selectById(id);
return RestBody.success(sysEnterprise);
}
二、设置全局请求头
一开始在网上查找了很多解决方案,但在实际测试中发现会有
‘springfox.documentation.builders.ParameterBuilder’ 已弃用
的提示信息。经过仔细查找后得以解决:
@Bean
public Docket createRestApi(){
//文档类型
return new Docket(DocumentationType.SWAGGER_2)
.globalRequestParameters(getGlobalRequestParameters())
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.dumingtek.ossm.modular.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("xxx接口文档说明")
.version("1.0")
.licenseUrl("192.168.1.101:8080")
.contact(new Contact("AHTS","",""))
.description("xxx接口文档")
.build();
}
//swagger添加全局请求头
private List<RequestParameter> getGlobalRequestParameters() {
List<RequestParameter> parameters = new ArrayList<>();
parameters.add(new RequestParameterBuilder()
.name("Authorization")
.description("Authorization")
.required(true)
.in(ParameterType.HEADER)
.query(q -> q.model(m -> m.scalarModel(ScalarType.STRING)))
.required(false)
.build());
return parameters;
}
注意这里使用的是RequestParameter类型,而非大多数解决方案中的Parameter类型!!!