有时候我们的接口是需要获取请求头信息的,比如存入token等默认信息,这样的话就还需要在 Swagger2Config 配置中添加请求头的配置。 @Bean public Docket docket() { ……
有时候我们的接口是需要获取请求头信息的,比如存入token等默认信息,这样的话就还需要在 Swagger2Config
配置中添加请求头的配置。
@Bean
public Docket docket() {
// 设置请求头
List<Parameter> parameters = new ArrayList<>();
parameters.add(new ParameterBuilder()
.name(\"token\") // 字段名
.description(\"token\") // 描述
.modelRef(new ModelRef(\"string\")) // 数据类型
.parameterType(\"header\") // 参数类型
.defaultValue(\"default value\") // 默认值:可自己设置
.hidden(true) // 是否隐藏
.required(false) // 是否必须
.build());
// 创建一个 swagger 的 bean 实例
return new Docket(DocumentationType.SWAGGER_2)
.groupName(\"user\") // 修改组名为 \"user\"
// 配置接口信息
.select() // 设置扫描接口
// 配置如何扫描接口
.apis(RequestHandlerSelectors
.basePackage(\"com.test.springboot.controller\") // 扫描指定包下的接口,最为常用
)
.paths(PathSelectors
.any() // 满足条件的路径,该断言总为true
)
.build()
// 添加请求头参数
.globalOperationParameters(parameters);
}
比如接口:
@GetMapping(value = \"/get-token\")
@ApiOperation(value = \"获取请求头中的token信息\")
public void getToken(
@RequestHeader(value = \"token\",required = false) String token
) {
// 直接获取 token 信息
System.out.println(\"token = \" + token);
// 通过代码获取
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (servletRequestAttributes != null) {
HttpServletRequest request = servletRequestAttributes.getRequest();
String header = request.getHeader(\"token\");
System.err.println(\"header = \" + header);
}
}
可以看到这个接口已经可以去设置请求头了,然后我们调用接口
这样在后端接口也就能获取到了。
还没有评论呢,快来抢沙发~