技术解析

Springfox 如何设置一个全局的 HTTP request header?
0
2021-06-03 21:53:10
idczone

使用Docket.globalRequestParameters的话,每个 REST API 都会有这么一个 request header,但是我每次都要设置,有没有可以全局设置美国服务器的方法?


如果是 auth 类 header 会有个小锁
new Docket(DocumentationType.SWAGGER_2)
.useDefaultResponseMessages(false)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.xx"))
.paths(PathSelectors.any())
.build().securitySchemes(securitySchemes())
//.globalOperationParameters(globalOperationParameters())
.securityContexts(securityContexts());
private List securitySchemes() {
ArrayList list = new ArrayList<>();
list.add(new ApiKey("Authorization", "Authorization", "header"));
return list;
}
private List securityContexts() {
return Collections.singletonList(
SecurityContext.builder()
.securityReferences(defaultAuth())
.forPaths(PathSelectors.any())
.build()
);
}
private List defaultAuth() {
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
return Collections.singletonList(
new SecurityReference("Authorization", authorizationScopes));
}

//如果是普通的 header
new Docket(DocumentationType.SWAGGER_2)
.useDefaultResponseMessages(false)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.xx"))
.paths(PathSelectors.any())
.build()
//.securitySchemes(securitySchemes())
.globalOperationParameters(globalOperationParameters())
;

private List globalOperationParameters() {
ArrayList list = new ArrayList<>();
Parameter parameter = new ParameterBuilder().name("key").required(true)
.description("").parameterType("header").defaultValue("")
.allowMultiple(false)
.modelRef(new ModelRef("string")).build();
list.add(parameter);
return list;
}

这个就是全局的 header .如果你要默认值就把 defaultValue 加上就可以了

globalOperationParameters 只能在代码写死默认值吗?不可以在页面上设置默认值吗?

不知道普通的 header 可以不可以, 不过 auth 类 header 是可以的. 你可以用我说的第一种的 ,设置一次就可以了

好吧,谢谢啦。因为那个 header 跟 OAuth 没有关系,所以不想使用 securitySchemes 那些
数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服