我先说下背景:我最近不是换了家公司工作,然后这家公司就是不管发什么请求都是需要带着 token 信息的,也就是说,比如现在我写好代码了,想要验证我写的代码对不对,咱们现在用的都是 springboot , springcloud 框架,写完了直接在 swagger 界面上进行调试就 OK 了,但是现在不管什么请求都要携带 token 信息,默认的 swagger 配置是没有的
我在上家公司的时候,当时的权限部门帮我们都做好了 token 验证,只要是能够进入到我们系统的用户,那就是有权限的,所以当时的项目直接在 swagger 界面上进行测试就 OK 了
我刚接手项目熟悉的时候,想要测试一下请求, swagger 上没办法添加 token 信息,所以我就得用 postman 去测
对我来说是有点儿难受的,你想想,我以前就是写好了接口,启动项目,去 swagger 项目上一测试,没问题提交代码完事儿,有问题我就可以直接进行调试
现在使用 postman 测试没问题还好,有问题的话, token 不知道怎么添加进去,感觉就是明明可以直接使用 swagger 的,现在要再进行一个第三方 postman ,就感觉用的不是很顺手嘛
所以我就想,能不能在 swagger 上直接就可以添加上 token 信息,这样的话,我就不需要再借助第三方工具 postman 了
一倒腾还真的让我给搞成功了
swagger 整合细节我就不说了,这里主要就是 swagger 启动那里需要设置,具体代码:
@Bean
public Docket controllerApi() {
// 添加 head 参数配置 start
ParameterBuilder token = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
token.name("Authorization").description("token 信息").modelRef(new ModelRef("String"))
.parameterType("header").required(false).build();
pars.add(token.build());
return new Docket(DocumentationType.SWAGGER_2)
.enable(enable)
.apiInfo(new ApiInfoBuilder()
.title(projectName + "接口文档")
.description(projectDesc + "")
.license("郑璐璐 csdn")
.licenseUrl("https://blog.csdn.net/zll_0405")
.version(version)
.build())
.select()
.apis(RequestHandlerSelectors.basePackage(basePackage))
.paths(PathSelectors.any())
.build()
// 注意一下 globalOperationParameters 这行配置
.globalOperationParameters(pars);
}
OK ,添加好上面的代码之后,再启动就能在 swagger 界面上看到下面的改动了:
在图中红框框的地方,输入 token 信息,然后执行一下,你就会发现,使用 swagger 我又可以了,哈哈哈
注意:给出的代码只是一个小 demo ,具体信息请根据自己的项目信息去配置
以上,感谢您的阅读哇~