Swagger笔记
Swagger
学习目标
- 了解Swagger的作用和概念
- 了解前后端分离
- 在SpringBoot中集成Swagger
Swageer简介
前后端分离
Vue + SpringBoot
后端时代:前端只用管理静态页面;html==>后端. 模版引擎 JSP=>后端是主力
- 后端:后端控制层,服务层,数据访问层
- 前端:前端控制层,视图层
- 伪造后端数据,json。已经存在了,不需要后端,前端工程依然能跑起来
- 前端如何交互?==>API
- 前后端相对独立,松耦合;
- 前后端甚至可以部署在不同的服务器上
产生一个问题:
前后端集成联调,前端人员和后端人员无法做到“即时协调,尽早解决”最终导致问题爆发
解决方案:
- 首先指定scheme[计划提纲],实时更新最新的API,降低集成的风险;
- 早些年:指定word计划文档;
- 前后端分离;
- 前端测试后端接口:postman
- 后端提供接口,需要实时更新最新的消息及改动
Swagger
- 号称世界上最流行的Api框架;
- RestFull Api 文档在线自动生成工具->Api文档与API定义同步更新
- 直接运行,可以在线测试API接口
- 支持多种语言(Java Php..)
在项目中使用Swagger需要 springbox;
- swagger2
- Ui
SpringBoot集成Swagger
1.新建一个Springboot-web项目
2.导入相关依赖
<!--swagger2-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<!--swagger-ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
3.编写一个Hello工程
4.配置Swagger=>Config
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.movie.api.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(new ApiInfoBuilder().title("movie电影系统 - api文档").version("v1.0").build());
}
}
Swagger配置扫描接口
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.movie.api.controller"))//RequestHandlerSelectors配置要扫描的接口方法
.paths(PathSelectors.any())//过滤
.build()//工厂模式
.apiInfo(new ApiInfoBuilder().title("朝歌电影系统 - api文档").version("v1.0").build());
}
}
配置是否启动Swagger
我只希望Swagger在生产环境中使用,在发布的时候不使用
- 判断是不是生产环境 flag = false
- 注入enable(flag)
配置Api文档
如何配置多个分组;多个Docket实例即可
@Bean
public Docket docket1(){
return new Docket(DocumentationType.SWAGGER_2).groupName("A");
}
@Bean
public Docket docket2(){
return new Docket(DocumentationType.SWAGGER_2).groupName("B");
}
@Bean
public Docket docket3(){
return new Docket(DocumentationType.SWAGGER_2).groupName("C");
}
如何内嵌Swagger文档
前端配置config.js
//自定义的配置文件
const config = {
//后端api地址
API_URL: "http://localhost:8888/api",
};
export default config
前端导入
<script>
import config from "@/config";
export default {
data(){
return{
url: config.SWAGGER_URL,
}
}
}
</script>
总结:
1.我们可以通过Swagger给一些比较难理解的属性或接口,增加注释信息
2.接口文档实时更新
3.可以在线测试
Swagger是一个优秀的工具,几乎所有大公司都有使用它
「注意点」在正式发布的时候,关闭Swagger!!出于安全考虑。而且节省运行时内存.。

Swagger极速掌握
浙公网安备 33010602011771号