Swagger简介
前后端分离:vue+Springboot
后端时代:前端只管html+css+js,后端:模板引擎 jsp==>后端主力
前后端分离时代:
后端“控制层、服务层、数据访问层【后端团队】
前端:前端控制层、视图层【前端团队】
伪造后端数据
前后端交互:API
前后端相对独立,松耦合,前后端甚至可以分别部署到不同的服务器上面
交互问题,前后端集成联调?
前端人员和后端人员无法做到协商,尽早解决,导致问题爆发
解决方法:制定一个计划提纲schema,实时更新api,降低集成风险,
早些年:word计划文档,
前后端分离:
前端测试后端接口:
后端提供接口:提供最新消息和改动
Swagger:号称最流行的api框架
RestFul API 文档在线自动生成问题==>API文档与API定义同步更新,
直接可以在线测试,
可以在线测试接口
支持多种语言
在项目中使用Swagger,需要导入jar包:swagger2,swagger-ui
springboot集成swagger
新建一个springboot-web项目
导入依赖
编写一个helloword
默认配置
@Configuration
@EnableSwagger2 //Swagger2
public class SwaggerConfig {
}
访问:http://localhost:8080/swagger-ui.html
得到页面
配置Swagger
Swagger的实例:
Swagger配置bean 的 Dorket
配置扫描接口
Docket.select()
//看源码学习
@Configuration
@EnableSwagger2 //Swagger2
public class SwaggerConfig {
//配置swagger的bean实例
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//RequestHandlerSelectors配置要扫描的接口
//basePackage 扫描指定包 .basePackage("com.ty.controller")
//none 全部不扫描
//any 扫描所有接口
//withMethodAnnotation 扫描指定方法上的方法 .withClassAnnotation(RequestMapping.class)
//withClassAnnotation 扫描指定类上的方法 .withClassAnnotation(RestController.class))
.apis(RequestHandlerSelectors.basePackage("com.ty.controller"))
//paths() 过滤路径
.paths(PathSelectors.ant("/ty/**"))
.build();
}
//配置swagger的apiInfo信息
private ApiInfo apiInfo(){
//这里爆红,拿到源码的信息 指作者信息
Contact DEFAULT_CONTACT = new Contact("ty",
"https://editor.csdn.net/md?not_checkout=1&articleId=109269811",
"123456789@qq.com");
return new ApiInfo("ty 的api文档",
"出关为学,不成不还",
"V1.0",
"https://editor.csdn.net/md?not_checkout=1&articleId=109269811",
DEFAULT_CONTACT,
"Apache 2.0",