1. 前言????
Swagger2是一种功能强大的API文档工具,它可以帮助我们快速生成API文档,并且提供一些调试工具来方便我们调试接口。但是在实际开发中,有些接口需要在请求头中携带一些特定参数才能正常调用,,比如你的登录,如果是用token认证,这时候我们就需要在Swagger2中配置header请求头等参数了。本篇文章将介绍如何在Swagger2中配置header请求头等参数,让你的API接口更加易用、清晰、规范。快来了解吧!
这将又会是干货满满的一期,全程无尿点不废话只抓重点教,具有非常好的学习效果,拿好小板凳准备就坐!希望学习的过程中大家认真听好好学,学习的途中有任何不清楚或疑问的地方皆可评论区留言或私信,bug菌将第一时间给予解惑,那么废话不多说,直接开整!Fighting!!
2. 环境说明????
本地的开发环境:
- 开发工具:IDEA 2021.3
- JDK版本: JDK 1.8
- Spring Boot版本:2.3.1 RELEASE
- Maven版本:3.8.2
3. 实现方案????
集成过swagger 的小伙伴,肯定都会在自己的项目中配置一下,缺它,你的swagger也运行不了,对吧。
那么跟swagger添加自定义请求头有啥联系?别着急,继续往下看。
我们都知道,body参数是自带的,要如果要添加header参数呢?那就要你手动添加啦,你只需要在注入该globalOperationParameters(),这是一个全局参数配置,你只需要将你设置的header 参数名设置进去即可。
我们先来看下 globalOperationParameters() 方法加在哪里。
-
/**
-
* swagger文档配置
-
*/
-
@Bean
-
public Docket customDocket() {
-
return new Docket(DocumentationType.SWAGGER_2)
-
.apiInfo(apiInfo())
-
.select()
-
.apis((""))
-
.paths(())
-
.build()
-
.globalOperationParameters();// 全局配置
-
}
接着你既可以在当前类中把你要设置的header参数传进去,我是单独封装了一个添加参数的内置方法,这样好处就是代码不会造成过长。
-
/**
-
* 添加head参数配置
-
*/
-
private List<Parameter> getParameterList() {
-
ParameterBuilder clientIdTicket = new ParameterBuilder();
-
List<Parameter> pars = new ArrayList<Parameter>();
-
(Constant.TOKEN_HERDER_KEY).description("token令牌")
-
.modelRef(new ModelRef("string"))
-
.parameterType("header")
-
.required(false).build(); //设置false,表示clientId参数 非必填,可传可不传!
-
(());
-
return pars;
-
}
假如你要添加多个header 请求头参数,那你就再new 一个 ParameterBuilder()类,然后一样的设置,在pars集合中将你参数build后add进去即可。Constant是我定义的一个常量类,这个你们若是不习惯直接定义字符串命名也可。
最后一步就是将此刻封装的header 头传入到全局配置方法中。
.globalOperationParameters(this.getParameterList());
大家能看的明白不?若不能,我再把swagger配置全部粘贴到下边,大家好好的连串解读一下,基本看完我说的,你们下一次若是遇到再header添加自定义请求头的话,直接怼它,这我未出生就会了。
如下是完整swagger 配置。
-
package ;
-
-
import ;
-
import ;
-
import ;
-
import ;
-
import ;
-
import ;
-
import ;
-
import ;
-
import ;
-
import ;
-
import ;
-
import ;
-
import ;
-
import ..EnableSwagger2;
-
-
import ;
-
import ;
-
-
-
/**
-
* swagger配置
-
*
-
* @Author
-
* @Date 2021-06-01 13:00
-
*/
-
@Configuration //必须存在
-
@EnableSwagger2 //必须存在
-
public class SwaggerConfig {
-
-
/**
-
* swagger文档配置
-
*/
-
@Bean
-
public Docket customDocket() {
-
return new Docket(DocumentationType.SWAGGER_2)
-
.apiInfo(apiInfo())
-
.select()
-
.apis((""))
-
.paths(())
-
.build()
-
.globalOperationParameters(this.getParameterList());// 全局配置
-
}
-
-
-
/**
-
* 添加head参数配置
-
*/
-
private List<Parameter> getParameterList() {
-
ParameterBuilder clientIdTicket = new ParameterBuilder();
-
List<Parameter> pars = new ArrayList<Parameter>();
-
(Constant.TOKEN_HERDER_KEY).description("token令牌")
-
.modelRef(new ModelRef("string"))
-
.parameterType("header")
-
.required(false).build(); //设置false,表示clientId参数 非必填,可传可不传!
-
(());
-
return pars;
-
}
-
-
-
/**
-
* api相关配置
-
*/
-
private ApiInfo apiInfo() {
-
return new ApiInfoBuilder()
-
.title("swagger 接口文档")
-
.contact(new Contact("review", "", ""))
-
.description("swagger-bootstrap-ui")
-
.termsOfServiceUrl("http://localhost:8888/")
-
.version("1.0")
-
.build();
-
}
-
-
}
-
4. 测试????
配置后,重启下项目刷新一下swagger 访问链接。诺,这不加的header类型就出来了么。是不是很简单,直接配置也就不需要所有人都跑去postman进行接口测试了。
5. 往期推荐????
滴~如下推荐【Spring Boot 进阶篇】的学习大纲,请小伙伴们注意查收。
Spring Boot进阶(01):Spring Boot 集成 Redis,实现缓存*
Spring Boot进阶(02):使用Validation进行参数校验
Spring Boot进阶(03):如何使用MyBatis-Plus实现字段的自动填充
Spring Boot进阶(04):如何使用MyBatis-Plus快速实现自定义sql分页
Spring Boot进阶(05):Spring Boot 整合RabbitMq,实现消息队列服务
Spring Boot进阶(06):Windows10系统搭建 RabbitMq Server 服务端
Spring Boot进阶(07):集成EasyPoi,实现Excel/Word的导入导出
Spring Boot进阶(08):集成EasyPoi,实现Excel/Word携带图片导出
Spring Boot进阶(09):集成EasyPoi,实现Excel文件多sheet导入导出
Spring Boot进阶(10):集成EasyPoi,实现Excel模板导出成PDF文件
Spring Boot进阶(11):Spring Boot 如何实现纯文本转成.csv格式文件?
Spring Boot进阶(12):Spring Boot 如何获取Excel sheet页的数量?
Spring Boot进阶(13):Spring Boot 如何获取@ApiModelProperty(value = “序列号“, name = “uuid“)中的value值name值?
Spring Boot进阶(14):Spring Boot 如何手动连接库并获取指定表结构?一文教会你
Spring Boot进阶(15):根据数据库连接信息指定分页查询表结构信息
Spring Boot进阶(16):Spring Boot 如何通过Redis实现手机号验证码功能?
Spring Boot进阶(17):Spring Boot如何在swagger2中配置header请求头等参数信息
Spring Boot进阶(18):SpringBoot如何使用@Scheduled创建定时任务?
Spring Boot进阶(19):Spring Boot 整合ElasticSearch
Spring Boot进阶(20):配置Jetty容器
Spring Boot进阶(21):配置Undertow容器
Spring Boot进阶(22):Tomcat与Undertow容器性能对比分析
Spring Boot进阶(23):实现文件上传
Spring Boot进阶(24):如何快速实现多文件上传?
Spring Boot进阶(25):文件上传的单元测试怎么写?
Spring Boot进阶(26):Mybatis 中 resultType、resultMap详解及实战教学
Spring Boot进阶(27):Spring Boot 整合 kafka(环境搭建+演示)
Spring Boot进阶(28):Jar包Linux后台启动部署及滚动日志查看,日志输出至实体文件保存
Spring Boot进阶(29):如何正确使用@PathVariable,@RequestParam、@RequestBody等注解?不会我教你,结合Postman演示
Spring Boot进阶(30):@RestController和@Controller 注解使用区别,实战演示
...
6. 文末????
如果想系统性的学习Spring Boot,小伙伴们直接订阅bug菌专门为大家创建的Spring Boot专栏《滚雪球学Spring Boot》从入门到精通,从无到有,从零到一!以知识点+实例+项目的学习模式由浅入深对Spring Boot框架进行学习&使用。
我是bug菌,一名想走????出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!
关注公众号,获取最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等硬核资源