Swagger接口如何统一添加请求头

后端 潘老师 6个月前 (10-18) 182 ℃ (0) 扫码查看

有时候我们的接口是需要获取请求头信息的,比如存入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);
        }
    }

可以看到这个接口已经可以去设置请求头了,然后我们调用接口

这样在后端接口也就能获取到了。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/9827.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】