一、引言:跟接口文档说拜拜 👋
作为一名 Java 开发者,你是否还在为编写繁琐的 API 文档而头疼?传统的手动编写方式不仅耗时费力,而且容易出错,难以维护。今天,我们就来介绍一款神器 Knife4j,它可以帮助你轻松生成美观、易于使用的 API 文档,让你告别文档编写烦恼!
二、Knife4j 简介:API 文档界的“后起之秀”
简单来说,Knife4j 是一个集 Swagger2 和 OpenAPI3 为一体的增强解决方案,它不仅拥有 Swagger 的所有功能,还做了很多优化和增强,例如:
- 界面更美观: 提供简洁美观的界面,方便用户浏览和使用 API 文档。
- 功能更丰富: 支持接口排序、搜索、分组等功能,支持多种格式输出。
- 易用性更高: 提供了更友好的配置方式,使用起来更加简单方便。
三、Spring Boot 集成 Knife4j:三步搞定,轻松上手 🚀
1. 添加依赖:引入 Knife4j 包
在你的 Spring Boot 项目的 pom.xml
文件中添加以下依赖:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
2. 配置 Knife4j:告诉它你的 API 信息
创建一个配置类,例如 Knife4jConfiguration,使用 @EnableSwagger2WebMvc
注解开启 Swagger 功能,并配置 Docket Bean,就像这样:
package com.muqing.common.config;
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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {
@Bean(value = "mq-admin-api")
public Docket defaultApi2() {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.title("MQ-ADMIN API文档")
.description("# 基于 Spring Boot 与 Vue3 的后台管理系统。")
.termsOfServiceUrl("https://doc.uyii.cn/")
.contact("zhy@uyii.cn")
.version("1.0")
.build())
.select()
.paths(PathSelectors.any())
.build();
return docket;
}
}
3. 运行项目:见证奇迹的时刻 ✨
启动你的 Spring Boot 应用,在浏览器中访问 http://localhost:8800/doc.html
,你就能看到 Knife4j 生成的 API 文档啦!
四、进阶用法:玩转 Knife4j,定制你的 API 文档 🎨
- 分组管理 API 文档:
@Bean
public Docket adminApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("admin")
.select()
.apis(RequestHandlerSelectors.basePackage("com.muqing.admin")) // 修改为你的模块包路径
.paths(PathSelectors.any())
.build();
}
@Bean
public Docket frontApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("front")
.select()
.apis(RequestHandlerSelectors.basePackage("com.muqing.front")) // 修改为你的模块包路径
.paths(PathSelectors.any())
.build();
}
- 自定义 API 信息:
@RestController
@RequestMapping("/users")
@Api(tags = "用户管理")
public class UserController {
@GetMapping("/{id}")
@ApiOperation("获取用户信息")
public User getUser(@PathVariable Long id) {
// ...
}
}
五、实战演练:小试牛刀,巩固学习成果 💪
我们来创建一个简单的 Spring Boot 项目,演示如何使用 Knife4j 生成 API 文档:
1. 创建一个 Spring Boot 项目,添加 Web 依赖和 Knife4j 依赖。
2. 创建一个 FrontIndexController
,编写接口:
package com.muqing.front.controller;
import com.muqing.common.api.ApiResult;
import com.muqing.front.entity.Article;
import com.muqing.front.service.FrontIndexService;
import com.muqing.front.vo.IndexVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* IndexController
*
* @author zhy
* @since 2023/6/5
*/
@RestController
@Api(tags = "后台首页")
@RequestMapping("/front")
public class FrontIndexController {
@Autowired
private FrontIndexService frontIndexService;
/**
* 首页博主信息
*
* @return {@link ApiResult}<{@link IndexVo}>
*/
@ApiOperation("博主信息")
@GetMapping()
public ApiResult<IndexVo> index() {
IndexVo IndexVo = frontIndexService.getAuthorInfo();
return ApiResult.success(IndexVo);
}
/**
* 关于我
*
* @return {@link Article}
*/
@ApiOperation("关于我")
@GetMapping("/about")
public ApiResult<Article> about() {
Article article = frontIndexService.getAbout();
return ApiResult.success(article);
}
}
3. 运行项目,访问 http://localhost:8080/doc.html
,查看生成的 API 文档。
结语:API 文档,从此轻松搞定 🎉
Knife4j 为我们提供了一种简单高效的方式来生成和管理 API 文档,从此告别繁琐的手动编写,让前后端协作更加顺畅!
希望这篇文章能够帮助你快速上手 Knife4j,更多进阶的技能请阅读官方文档! 🎉
参考资料:学习永无止境 📚
- Knife4j 官方文档
- Swagger 官方文档
个人观点,仅供参考,本文内容如有问题,欢迎留言讨论。