学习目标
- 了解swagger的作用和概念
- 了解回顾前后端分离
- 集成Springboot
一、什么是swagger
流行的API框架,RestFul API文档在线自动生成工具,API文档与API定义同步更新,直接运行,可以在线测试接口
前后端分离:Vue + Springboot
后端时代:前端只用管理静态页面;后端的模板引擎直接渲染页面
前后端分离时代:
- 后端:后端控制层、服务层、数据访问层
- 前端:前端控制层、视图层
- 伪造后端数据,json数据。已经存在的虚假数据,不需要后端的数据,也能进行项目的运行。
- 前后端交互:
- API
- 前后端相对独立,耦合度低
- 前后端可以部署到不同的服务器上
- 出现的问题:前后端集成联调
- 制定计划提纲,实时更新API,降低集成的风险
- 前后端接口测试工具:postman,测试请求
- 后端提供的接口,需要实时更新到最新
二、SpringBoot集成swagger
- 新建SpringBoot项目
- 导入Swagger2和Swagger-ui依赖
- 编写Swagger配置文件
- 测试运行 访问路径:http://localhost:8080/项目路径/swagger-ui.html
三、配置swagger
@Configuration
@EnableSwagger2 // Swagger的开关,表示已经启用Swagger
public class SwaggerConfig extends WebMvcConfigurationSupport {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.host("localhost:8080")
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.share")) //扫描的包
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("share")
.description("share接口文档")
.version("0.1")
.build();
}
/**
* 解决swagger-ui.html 404无法访问的问题
*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
// 解决静态资源无法访问
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/static/");
// 解决swagger无法访问
registry.addResourceHandler("/swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
// 解决swagger的js文件无法访问
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
多人协作开发,可以自定义扫描的包以及声明不同的模块 去区分每个人开发的接口!!!
四、swagger注解
(一)Model 实体类注解
- @ApiModel:描述整个实体类信息
- @ApiModelProperty:描述实体类属性信息
(二)Controller 接口注解
- @ApiOperation:描述接口方法信息
- @ApiParam:描述接口方法参数信息
信息 - @ApiModelProperty:描述实体类属性信息
- @ApiIgnore:忽略接口中不必要暴露出来的参数(如httpSession,若该参数不进行忽略,会出现很多无关的参数,会影响接口的查阅!)