如何在Spring Boot中搭建好Swagger的接口文档?
-
pom.xml里添加swagger相关依赖,我的springboot版本是2.5.6
<!--包含swagger的构建 --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-autoconfigure</artifactId> <version>${knife4j-spring-boot-starter.version}</version> </dependency> <!--包含swagger的展示doc.html --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-ui</artifactId> <version>${knife4j-spring-ui.version}</version> </dependency>
其中版本分别如下:
<knife4j-spring-boot-starter.version>3.0.3</knife4j-spring-boot-starter.version>
<knife4j-spring-ui.version>2.0.9</knife4j-spring-ui.version> -
创建一个SwaggerConfig类,目录和内容如下:
package com.example.forestsystemserver.config;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Swagger2的接口配置
*
*/
@Configuration
@EnableSwagger2
@EnableKnife4j
public class SwaggerConfig
{
// 创建Docket存入容器,Docket代表一个接口文档
@Bean
public Docket webApiConfig(){
return new Docket(DocumentationType.OAS_30)
.enable(true)
// 创建接口文档的具体信息
.apiInfo(webApiInfo())
// 创建选择器,控制哪些接口被加入文档
.select()
// 指定@ApiOperation标注的接口被加入文档
.apis(RequestHandlerSelectors.basePackage("com.example.forestsystemserver.controllerproject"))
.build();
}
// 创建接口文档的具体信息,会显示在接口文档页面中
private ApiInfo webApiInfo(){
return new ApiInfoBuilder()
// 文档标题
.title("XXX项目接口文档")
// 文档描述
.description("本文档描述了XXX项目的接口定义")
// 版本
.version("1.0")
// 联系人信息
.contact(new Contact("name", "url", "email"))
// 版权
.license("xxx")
// 版权地址
.licenseUrl("http://www.xxx.com")
.build();
}
}
关键点:.apis(RequestHandlerSelectors.basePackage(“com.example.forestsystemserver.controllerproject”))包含的是你的controller层代码的位置,即带有@RestController的类。
- 启动项目,浏览器输入 localhost:端口/doc.html,就可以打开接口文档