springboot 整合 knife4j
·
简介:
Knife4j 是一款基于Swagger的开源文档管理工具,主要用于生成和管理 API 文档。
它提供了一套美观,功能强大的界面,可以帮助开发者快速浏览、测试和理解后端API接口。
主要功能:
- 自动配置:自动配置Knife4j所需的所有bean。
- 默认设置:提供合理的默认配置,例如访问路径(通常是
/doc.html)。 - UI增强:提供比原生Swagger UI更加美观和用户友好的界面。
- Markdown支持:允许你在API文档中使用Markdown语法来编写描述。
- 国际化支持:支持多语言切换。
- 增强的安全性:可以配置安全认证以保护API文档不被未授权访问。
操作步骤:
环境说明:
- jdk: 1.8
- springboot : 2.6.2
- knife4j: 3.0.3
第一步:引入依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
第二步:配置文件(很重要!!!)
spring:
#不加这个访问地址会报404
mvc:
pathmatch:
matching-strategy: ant_path_matcher
knife4j:
# 启动knife4j(注:有时,如果我们不进行此配置,knife4j不会开启)
enable: true
第三步:配置类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class Knife4jConfiguration {
@Bean(value = "defaultApi2")
public Docket defaultApi2() {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.title("knife4j测试")
.description("# swagger-bootstrap-ui-demo RESTful APIs")
.termsOfServiceUrl("http://www.xx.com/")
.contact(new Contact("除了代码啥都不会", "", "123@qq.com"))
.version("1.0")
.build())
//分组名称
.groupName("2.X版本")
.select()
//这里指定文档Controller层扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
}
第四步:给请求参数和方法都加上注解
常用注解:
-
@Api:用于描述整个接口文档的基本信息,可以用在类或接口上。 -
@ApiOperation:用于描述单个接口的操作信息,包括接口的名称、描述、请求方法等。可以用在方法上。 -
@ApiImplicitParam:用于描述接口的请求参数信息,包括参数的名称、类型、是否必填等。 -
@ApiImplicitParams:用于描述接口的多个请求参数,可包含多个@ApiImplicitParam注解。 -
@ApiModel:用于描述数据模型,可用在DTO(Data Transfer Object)类上,表明该类是一个数据模型。 -
@ApiModelProperty:用于描述数据模型的属性信息,包括属性的名称、类型、描述等。
示例:
控制层
实体类

第五步:启动项目并访问 http://{ip}:{端口}/doc.html 即可!


测试一下,没问题,拿去用吧!

更多推荐





所有评论(0)