什么是 Swagger ?
据说是避免 前后端干架的必备工具…
它的职责就是前后端分离
- 它号称是世界上最流行的API框架
- RestFul Api 文档在线自动生成工具 => Api文档和API定义同步更新
- 直接运行,可以在线测试API接口
- 支持多种语言…
官网:https://swagger.io/
一:新建SpringBoot工程
勾选Web依赖
项目搭建好了 将这些无关紧要的可以删除
写个controller进行测试
没问题~
二:导入Swagger相关的依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
三:配置Swagger的config
访问 http://localhost:8080/swagger-ui.html
注意:这里访问不了这个页面可能是因为依赖级别太高了尝试降级试试 Version 2.9.2
为什么要访问这个页面呢,来看下源码~
四:配置Swagger信息
整到这里,你是否有了疑问,为啥有这个页面呢
这其实就是swagger默认配置的页面
接下来看源码了解一下~
进入Docket类
原来如此:那么我们也可以自定义swagger配置玩一玩!
在Swagger的配置文件中注册Swagger的Docket实例bean对象
@Configuration
@EnableSwagger2 //开启Swagger2
public class SwaggerConfig {
//配置了Swagger的 Docket 的bean实例
@Bean
public Docket docket(){
return new Docket();
}
...
此时我们暂未知 new Docket()
参数应该填啥 进去Docket类中看看
那么我们就可以修改成
new Docket(DocumentationType.SWAGGER_2);
再查看Docket类有啥方法
于是乎… 我们整一个自定义的api信息
//配置Swagger信息
public ApiInfo apiInfo(){
}
不知道里面应该写啥 就看看apiInfo类呗~
滑到最下面 可以看到
嗯~ 我们直接返回一个这个就行了
//配置Swagger信息
public ApiInfo apiInfo(){
return new ApiInfo(
"Api Documentation",
"Api Documentation",
"1.0",
"urn:tos",
DEFAULT_CONTACT,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
可以看到 下面这里爆红了~🐕
查看源码发现 原来是静态成员变量呀
那我们就自己整一个替换就好了
//配置Swagger信息
public ApiInfo apiInfo(){
//作者信息
Contact contact = new Contact("潮汕奴仔", "", "");
return new ApiInfo(
"潮汕奴仔配置Swagger",
"潮汕奴仔 Api Documentation",
"C1.0",
"urn:tos",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
最后调用这个api信息
启动访问 http://localhost:8080/swagger-ui.html