Spring Boot 整合 Knife4j 实现接口文档编写?
ztj100 2025-05-08 08:10 3 浏览 0 评论
Knife4j增强版的Swagger UI实现,在Knife4j中提供了很多功能并且用户体验也随之有了很大的提升。Knife4j 主要基于Swagger 2.0构建的,主要的用途就是在SpringBoot项目中用来解决Swagger原生UI某些展示方面的不足,为用户提供了更加直观的接口文档展示功能。
其核心仍然基于Swagger,所以可以与现有的Swagger项目达到一个完美的集成,其用法和配置与Swagger基本上是一致的,在使用的时候只需要引入Knife4j相关的依赖的配置就可以了,下面我们就来看看如何在SpringBoot项目中集成Knife4j
引入依赖
根据上面的介绍,我们首先需要在POM依赖中添加Knife4j和Swagger的相关依赖,如下所示。
<dependencies>
<!-- Swagger依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- Knife4j依赖 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.9</version>
</dependency>
</dependencies>
配置 Swagger 和 Knife4j
添加依赖完成之后,接下来就是在SpringBoot项目中添加相关的配置类用来进行Swagger相关的配置,如下所示。
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.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
@Configuration
@EnableSwagger2
@EnableKnife4j
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")) // 修改为你的包路径
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("API文档标题")
.description("API文档描述")
.version("1.0")
.build();
}
}
配置文件
当然除了通过配置类配置之外,我们还可以再SpringBoot的配置文件中添加一些Swagger的基础配置信息,如下所示。
# Spring Boot application configuration
spring.application.name=your-application-name
server.port=8080
# Swagger configuration
knife4j.production=false
如果需要还可以自定义一些Knife4j的配置信息,例如可以在application.properties 中添加如下的一些配置项,如下所示。
# Knife4j 文档标题和描述
knife4j.title=API接口文档
knife4j.description=这是一个使用Knife4j生成的API接口文档
knife4j.version=1.0.0
编写接口并添加注解
接下来就是跟Swagger的用法一样,需要再接口控制器类上添加Swagger的注解,用来生成相应的接口文档。如下所示。
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "用户管理")
@RestController
@RequestMapping("/user")
public class UserController {
@ApiOperation(value = "获取用户列表", notes = "获取所有用户的列表")
@GetMapping("/list")
public List<String> list() {
return Arrays.asList("user1", "user2", "user3");
}
}
访问 Knife4j 文档页面
接下来就是启动项目访问Knife4j的接口文档。这个文档与之前的
http://localhost:8080/doc.html
这个文档要比之前Swagger与SwaggerUI增强版的文档要更符合用户体验。看上去也非常的美观。
总结
到这里呢,SpringBoot整合Knife4j就完成了,相比与之前的Swagger2以及Swagger3中增强的UI来讲Knife4j整体的用户体验都是比较好的。并且在使用方面也要比之前的两个API文档工具要更加人性化。最大的优势就在于它可以Swagger进行无缝的集成,有兴趣的读者可以试试。
相关推荐
- 再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
背景最近,栈长发现某些国内的开源项目都使用到了Knife4j技术,看名字就觉得很锋利啊!...
- Spring Boot自动装配黑魔法:手把手教你打造高逼格自定义Starter
-
如果你是SpringBoot深度用户,是否经历过这样的痛苦:每个新项目都要重复配置Redis连接池,反复粘贴Swagger配置参数,在微服务架构中为统一日志格式疲于奔命?本文将为你揭开Spring...
- Spring Boot(十五):集成Knife4j(spring boot 集成)
-
Knife4j的简介Knife4j是一个集Swagger2和OpenAPI3为一体的增强解决方案,它的前身是上一篇文章中介绍的swagger-bootstrap-ui。swagger-bootstra...
- swagger-bootstrap-ui:swagger改进版本,界面更美观易于阅读
-
swagger作为一款在线文档生成工具,用于自动生成接口API,避免接口文档和代码不同步,但原生的界面不是很友好,下面介绍一款改进版本swagger-bootstrap-ui,界面左右侧布局,可以打开...
- 界面美观功能强大,终于可以告别单调的swagger ui了——knife4j
-
介绍knife4j是为JavaMVC框架集成Swagger生成Api文档的增强解决方案(在非Java项目中也提供了前端UI的增强解决方案),前身是swagger-bootstrap-ui,取名kni...
- 从 0 到 1 实战 Spring Boot 3:手把手教你构建高效 RESTful 接口
-
从0到1实战SpringBoot3:手把手教你构建高效RESTful接口在微服务架构盛行的今天,构建高效稳定的RESTful接口是后端开发者的核心技能。SpringBoot凭...
- SpringBoot动态权限校验终极指南:3种高赞方案让老板主动加薪!
-
“上周用这套方案重构权限系统,CTO当着全组的面摔了祖传代码!”一位脉脉匿名网友的血泪经验:还在用硬编码写Shiro过滤器?RBAC模型搞出200张表?是时候用SpringSecurity+动态路...
- 一个基于 Spring Boot 的在线考试系统
-
今天推荐一款超级美观的在线考试系统,感兴趣可以先去预览地址看看该项目。在线Demo预览,http://129.211.88.191,账户分别是admin、teacher、student,密码是ad...
- SpringBoot API开发的十大专业实践指南
-
在SpringBoot应用开发领域,构建高效、可靠的API需遵循系统化的开发规范。本文结合实战编码示例,详细解析10项关键开发实践,助您打造具备工业级标准的后端接口。一、RESTful...
- 震碎认知!将原理融会贯通到顶点的SpringBoot实战项目
-
SpringBoot是什么?我们知道,从2002年开始,Spring一直在飞速的发展,如今已经成为了在JavaEE(JavaEnterpriseEdition)开发中真正意义上的标准,但...
- Spring Boot 整合 Knife4j 实现接口文档编写?
-
Knife4j增强版的SwaggerUI实现,在Knife4j中提供了很多功能并且用户体验也随之有了很大的提升。Knife4j主要基于Swagger2.0构建的,主要的用途就是在SpringBo...
- 前端同事老是说swagger不好用,我用了knife4j后,同事爽得不行
-
日常开发当中,少不了前端联调,随着协同开发的发展,前端对接口要求也变得越来越高了。所以我使用了knife4j,同事用完觉得太舒服了。knife4j简介:Knife4j...
- 一个基于spring boot的Java开源商城系统
-
前言一个基于springboot的JAVA开源商城系统,是前后端分离、为生产环境多实例完全准备、数据库为b2b2c商城系统设计、拥有完整下单流程和精美设计的java开源商城系统https://www...
- 再见 Swagger!国人开源了一款超好用的 API 文档生成框架真香
-
Knife4j是为JavaMVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍!...
- Spring Boot整合MybatisPlus和Druid
-
在Java中,我比较ORM熟悉的只有...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
- Spring Boot自动装配黑魔法:手把手教你打造高逼格自定义Starter
- Spring Boot(十五):集成Knife4j(spring boot 集成)
- swagger-bootstrap-ui:swagger改进版本,界面更美观易于阅读
- 界面美观功能强大,终于可以告别单调的swagger ui了——knife4j
- 从 0 到 1 实战 Spring Boot 3:手把手教你构建高效 RESTful 接口
- SpringBoot动态权限校验终极指南:3种高赞方案让老板主动加薪!
- 一个基于 Spring Boot 的在线考试系统
- SpringBoot API开发的十大专业实践指南
- 震碎认知!将原理融会贯通到顶点的SpringBoot实战项目
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- node卸载 (33)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- exceptionininitializererror (33)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)