整合Swagger
在现在的web开发中,前后端分离的开发模式大行其道,前端负责页面渲染,并发送请求到后端服务器请求数据,后端负责数据访问和处理,然后返回数据给前端
在前后端开发的模式中,接口的定义在协同开发中就非常重要,前端开发人员需要清晰地知道后端接口的用途,需要的参数和返回的数据,因此在开发中需要一份接口文档。Swagger是一款流行的Api框架,他可以定义Api接口的参数和返回值,并且支持同步更新和在线调试,解决了这个问题
基本使用
使用Swagger,需要导入Swagger的starter依赖,本文以Swagger3为例,Swagger2的用法和Swagger3会有少许不同
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
配置Swagger配置类,将@EnableOpenApi
注解添加在配置类或者启动类上
在容器中添加一个ApiInfo组件和Docket组件,ApiInfo组件用于描述项目的内容,作者以及License等信息,Docket组件用于设置接口文档需要扫描的接口
@Configuration
@EnableOpenApi
public class SwaggerConfig {
@Bean
public Docket createRestApi(ApiInfo apiInfo) {
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo)
.select()
// 扫描接口,支持按包扫描,按注解扫描,全部扫描,全部不扫描
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
// 过滤的路径,支持按路径匹配,按正则表达式匹配,全部匹配,全部不匹配
.paths(PathSelectors.any())
.build();
}
@Bean
public ApiInfo apiInfo() {
Contact contact = new Contact("葱酱", "https://blog.csdn.net/blackball1998", "425017255@qq.com");
return new ApiInfoBuilder()
.title("我的项目")
.description("我的项目介绍")
.version("1.0")
.termsOfServiceUrl