Knife4j:实时接口文档的利器

Knife4j系列--使用-教程-实例-配置 详细讲解 Knife4j是基于springboot构建的一个文档生成工具,它可以让开发者为我们的应用生成API文档,目的是可以更加方便的基于API文档进行测试,生成的文档还可以导出,然后给到前端开发团队,前端开发团队可以基于API接口写具体的调用。 阅读详情

01 引言

在日常开发中,尤其移动端的开发,都需要编写接口文档。你们还是用WIKI、showDoc、语雀等工具写么?

接口的文档的独立编写,维护起来总是变的困难。参数的变化、接口的增加或者删除,小小的改动都需要同步更新接口文档,相当麻烦,甚至不再去维护接口文档,接口文档变成一次性的文档。

有人可能想到Swagger,但是Swagger的UI并不美观。

今天介绍一款基于Swagger加强版接口文档框架Knife4j,美化了UI,提高了用户体验。

02 Knife4j 简介

Knife4j 作为一款专注于增强 Swagger 文档能力的国产开源工具,它极大地提升了开发者的接口文档体验。

  • 核心定位:

    Knife4j 是一个基于 Swagger(OpenAPI 2.0 / 3.0 规范)的、功能强大的 API 文档增强解决方案和生成工具。

  • 核心价值:

    它在完全兼容原生 Swagger 注解和配置的基础上,提供了一个功能更丰富、界面更美观、操作更便捷的前端 UI 界面。

  • 出身:

    由国内开发者开源并维护,对中文环境有良好的支持。

  • 本质:

    你可以将其理解为 Swagger 的一个超级皮肤和功能扩展包。它替换了默认的 swagger-ui,提供了一套更强大的界面和额外的实用功能。

官网地址:https://doc.xiaominfo.com/

Github地址:https://github.com/xiaoymin/knife4j

Gitee地址:https://gitee.com/xiaoym/knife4j

03 使用

Knife4j在SpringBoot中使用非常简单,通过简单的配置,就可以完成。

注意:SpringBoot 2.x和SpringBoot 3.x的依赖是不一样的,集成方式也稍有不同,详情请参考官方文档。本文以SpringBoot2.x为例介绍。

3.1 Maven依赖

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
    <version>4.4.0</version>
</dependency>

3.2 Knife4j配置

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {

    @Bean(value = "knife4jConfiguration")
    public Docket knife4jConfiguration() {
        //指定使用Swagger2规范
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        //描述字段支持Markdown语法
                        .description("# Knife4j RESTful APIs")
                         // API的服务条款
                        .termsOfServiceUrl("https://github.com/simonking-ws")
                         // 作者
                        .contact("wsapplyjob@163.cmo")
                         // 版本
                        .version("1.0")
                        .build())
                //分组名称
                .groupName("Knife4j 接口文档测试服务")
                .select()
        //这里指定Controller扫描包路径
        .apis(RequestHandlerSelectors.basePackage("com.simonking.boot.mybaits.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

3.3 创建接口类

@Api(tags = "Knife4j首页模块")
@RestController
@RequestMapping("/knife4j")
public class Knife4jController {

    @ApiImplicitParam(name = "userId",value = "用户ID")
    @ApiOperation(value = "接口测试01")
    @GetMapping("/test01")
    public String test01(String userId) {
        return "test01_" + userId;
    }

    @ApiImplicitParams({
            @ApiImplicitParam(name = "userId",value = "用户ID"),
            @ApiImplicitParam(name = "orderId",value = "订单")
    })
    @ApiOperation(value = "接口测试02")
    @GetMapping("/test02")
    public ResponseEntity<UserInfo> test02(String userId, Integer orderId) {
        return ResponseEntity.ok(new UserInfo());
    }
    
    @ApiOperation(value = "接口测试03")
    @GetMapping("/test03")
    public ResponseEntity<String> test03(UserInfo userInfo) {
        return ResponseEntity.ok("success");
    }
}

说明一下主要的注解参数:

  • @Api:用来标记当前接口的名称或者功能,属性tags指定左侧列表的名称(后面会展示)

  • @ApiOperation:指定接口的操作的名称

  • @ApiImplicitParam:指定参数的说明

  • @ApiImplicitParams:多参数的指定,里面由多个@ApiImplicitParam组成。

  • @ApiParam:作用在字段上和@ApiImplicitParam功能一致,用作对象的字段

3.4 生成接口文档

接口文档属于在先接口文档,项目启动之后,就可以访问。

访问地址:http://localhost:8080/doc.html

服务器部署的话,将对应的IP和端口换成服务器的IP和端口即可。

3.5 接口文档功能

接口文档随着项目发布访问会自动更新。

  • ① 文档:

    接口文档,包括请求参数、响应状态、响应参数以及响应示例。响应示例不支持Mock数据,不是太友好。

    如对象的返回:

  • ② 调试:

    直接进行接口调试

  • ③ Open:

    Knife4j的相关Open接口。

  • ④ Script:

    将接口转化成JS、TS脚本

3.6 其他功能

在文档管理里面可以设置全局参数,导出离线温度囊以及个性化设置。

04 同类产品对比及 Knife4j 优势

特性/产品Knife4j原生 Swagger UI (swagger-ui)Springdoc OpenAPI UI (swagger-ui)Apifox / YAPI / Postman (等独立工具)
定位Swagger 文档增强器Swagger 官方基础 UISwagger 官方基础 UI (Springdoc 集成)独立 API 全生命周期管理平台
核心功能文档展示、增强调试、离线导出等基础文档展示、简单调试基础文档展示、简单调试设计、调试、Mock、自动化测试、文档等
UI 美观度 & 体验极佳 (现代化,符合国人习惯)基础基础通常较好 (独立开发)
集成复杂度低 (替换依赖即可)低 (默认集成)低 (Spring Boot Starter)高 (需独立部署/使用)
在线调试能力强大 (参数处理、响应查看、场景保存)基础基础非常强大 (专业化)
离线文档导出支持 (Markdown, Word, Html, Pdf)不支持 (需第三方插件或手动)不支持 (需第三方插件或手动)通常支持 (是其强项)
文档目录/分组支持 (清晰结构)支持 (分组)支持 (分组)支持
接口搜索支持 (快速定位)支持支持支持 (高级搜索)
权限认证 (UI)支持 (Basic, JWT 等)支持支持支持 (更完善)
Mock 数据有限支持无无核心功能 (强大)
自动化测试无无无核心功能 (强大)
代码生成无无无部分支持
与项目代码紧密度高 (无缝集成,注解驱动)高高低 (独立于代码)
中文支持原生优秀需配置/不完全需配置/不完全通常较好
适合场景需要强大文档/调试的 Java Web 项目简单查看文档简单查看文档 (Spring Boot 3+)大型团队全流程 API 管理

Knife4j 的核心优势总结:

  • 无缝增强,开箱即用: 只需替换一个依赖,即可获得远超原生 Swagger UI 的体验,无需改变已有的 Swagger 注解习惯。
  • 极致易用的文档与调试: 界面设计美观直观,在线调试功能极其强大且便捷,大大提升开发调试效率。
  • 丰富的实用功能: 离线导出(满足归档、交付需求)、接口搜索、全局参数、接口排序、登录认证支持等。
  • 对国内开发者友好: 中文文档完善,社区活跃(Gitee/Github),遇到问题更容易找到解决方案。
  • 轻量级集成: 作为项目的一部分运行,无需额外部署和维护独立的文档平台。
  • 活跃的开源社区: 持续迭代更新,修复问题快,新功能跟进及时。

05 小结

Knife4j 成功解决了原生 Swagger UI 在功能性和用户体验上的痛点,为 Java 开发者提供了近乎完美的 API 文档管理和调试体验。它特别适合那些追求开发效率、重视接口文档质量、且希望以最小成本获得最大提升的团队和个人开发者。

如果你正在使用 Swagger 并对其默认界面感到不满,Knife4j 几乎是你无痛升级的最佳选择。 它能让你和你的团队更愉悦地编写、查看、调试 API,显著提升前后端协作效率。立即尝试 Knife4j,体验现代化 API 文档的强大魅力!

超简单配置接口文档Swagger和Knife4j教程 如何配置Swagger 3.0和Knife4j 3.0版本,建议使用Knife4j,因为它的前身是swagger-bootstrap-ui,是在Swagger的基础上进行了界面的优化 阅读详情

相关推荐

API文档生成工具-----Knife4介绍

一、Knife4j是什么?二、Knife4j如何配置?2.配置Knife4j三、在Controller类或方法上如何使用?四、如何访问API文档?1.启动你的Spring Boot应用程序。

刘皇叔说Java的博客 1721

knife4j介绍及使用

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名knife4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!其底层是对Springfox的封装,使用方式也和Springfox一致,只是对接口文档UI进行了优化。

weixin_55076626的博客 2万+

Swagger+knife4j 易于整合SpringBoot的OpenAPI文档生成利器

Swagger是一种用于自动生成API文档的开源框架,通过集成SpringBoot可以便捷地生成接口文档并支持在线测试。文章介绍了SpringBoot集成Swagger2的基本步骤(添加依赖、配置类、注解使用)以及常用注解的功能说明。同时推荐了Swagger的增强方案Knife4j,对比了其更美观的界面和更丰富的功能,并详细说明了Knife4j在不同架构(单体/微服务)中的使用方式。通过Swagger或Knife4j,开发者可以高效维护API文档,保证文档与代码的一致性。

DN金猿的博客 1092

Swagger3.0 和 Knife4j 的快速上手(SpringBoot)

简介:Knife4j 是为 Java MVC 框架集成 Swagger 生成 Api 文档的增强解决方案,前身是 swagger-bootstrap-ui, 取名 knife4j 是希望它能像一把匕首一样小巧,轻量,并且功能强悍! 1.两种接口文档访问地址 knife4j 访问地址:http://localhost:8080/doc.html Swagger访问地址:http://localhost:8080/swagger-ui/index.html 2.导入坐标 在模块中的pom.xml文件中引入以下的

a1120467800的博客 1万+

SpringBoot接口文档利器Knife4J:从Swagger增强到团队协作实战

在前后端分离开发模式下,接口文档是团队协作的基石。传统Swagger虽能自动生成API描述,但原生界面在分组、搜索、调试等方面体验欠佳,往往导致文档沦为摆设。Knife4J作为Swagger/OpenAPI生态的增强工具,通过重构文档展示与交互方式,显著提升接口联调效率。它兼容SpringFox与SpringDoc两条技术路线,支持OpenAPI 2/3规范,并提供离线导出、全局参数、响应缓存等实用功能。本文基于SpringBoot项目,介绍Knife4J的版本选型、最小配置与团队协作技巧,并梳理生产环境下

weixin_29304021的博客 326

Spring Boot 3整合Knife4j:接口分组配置与踩坑指南

接口文档是前后端协作的基础设施,在微服务和前后端分离架构下,一份清晰易用的API文档能显著提升联调效率。OpenAPI 3作为描述RESTful接口的行业规范,需要借助工具链将其转化为可交互的调试界面。Spring Boot 3全面迁移到Jakarta命名空间后,传统Swagger工具链纷纷失效,而springdoc-openapi与Knife4j的组合正成为新生态下的标准方案。Knife4j 4.x基于springdoc构建,不仅兼容新版框架,还提供了接口分组、全局鉴权、离线文档等增强能力。通过Group

weixin_33924770的博客 357

Knife4j接口文档的3大坑与6条军规:告别混乱管理

是不是每次打开Knife4j文档都像开盲盒?接口失踪、模型乱码、分组混杂,前端兄弟怒摔键盘:“这文档根本对不上啊!”别让“伪文档”拖垮团队效率。本文直击Knife4j三大高频坑:分组错乱、泛型失真、敏感接口裸奔,手把手教你用多Docket拆分、@ApiResponses拯救泛型、@Profile环境隔离,搭配Mermaid架构图+正反代码对比,彻底搞清“UI炫酷但数据不对”的根源。6条军规落地,让你的API文档从“鸡肋”变“契约”,真正丝滑协作,拒绝联调翻车。

m0_72340523的博客 1144

Knife4j实战:解决NestJS接口文档的3大痛点(含分组混乱/示例缺失/加载慢)

本文详细介绍了如何利用Knife4j工具解决NestJS项目中API接口文档的三大常见痛点:分组混乱、示例缺失和加载缓慢。通过实战案例和性能对比,展示了Knife4j在增强文档组织、提供动态示例以及优化加载速度方面的显著优势,有效提升团队协作与开发效率。

weixin_29227585的博客 560

springcloud-alibaba基于nacos整合knife4j接口文档

参考 官方文档 参考Eureka注册中心聚合OpenAPI文档 目录 一、api-doc模块添加pom依赖 二、配置yml 三、主类 四、微服务引入pom 五、配置类Knife4jConfiguration 六、接口组 七、接口与参数 八、测试 一、api-doc模块添加pom依赖 <dependencies> <!-- springboot-web--> <dependency> <grou.

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 3409

别再手动写接口文档了!Spring Boot项目集成Knife4j 4.x保姆级教程(含Swagger注解详解)

本文详细介绍了如何在Spring Boot项目中集成Knife4j 4.x,通过Swagger注解自动生成API文档,告别手动维护文档的时代。内容涵盖环境配置、注解详解、高级功能实战及常见问题排查,帮助开发者提升开发效率,减少沟通成本。

程涛 385

最新版IAR9.40和注册工具

IAR最新版的IDE在编译速度和代码提示等各个方面上都有很大提升,软件这个东西果然还是越新越好。之前的时候,IAR v9系列网上很多人都说能用,但是又没有把 IAR v9系列的注册方法写的很清楚,导致我一直都用注册老版本v8的方法去注册v9。结果注册后都会提示。

xue_nuo的博客 4万+

YApi 与 Knife4j 双工具对比:3 个维度解析企业级 Java 项目接口文档管理策略

本文深入对比YApi与Knife4j在企业级Java项目中的接口文档管理策略,从设计时到运行时构建完整文档体系。通过《苍穹外卖》等实战案例,解析双工具在接口设计协作、代码注解生成、Mock测试等场景的应用,助力团队提升开发效率和文档质量。

weixin_33889665的博客 376

2026年AI技能进阶指南:从提示词工程到智能体开发实战

提示词工程作为AI时代的基础沟通技能,其核心原理是通过系统化的交互方法论实现与大模型的高效对话。这项技术通过明确性、具体性和可操作性的设计原则,显著提升了AI生成内容的质量和实用性。在工程实践层面,提示词工程已经发展出角色扮演、步骤分解等成熟模式,广泛应用于代码生成、技术方案设计等场景。随着AI智能体开发的兴起,提示词工程进一步演化为定义智能体身份认知和行为规范的系统接口设计,成为构建自主AI系统的关键技术基础。掌握从基础提示词到智能体开发的完整技能栈,能够帮助开发者在AI技术浪潮中保持核心竞争力。

weixin_33139275的博客 333

SpringBoot项目API文档解决方案-Knife4j

一、为何要写接口文档 很多程序员都会写API,但不是每个程序员都会写API文档,也不是每个程序员都能写好API文档,很多人其实并不看重文档的编写,这其实是错误的,文档是我们不同工种(开发、测试)之间交流的主要参考,如果你文档不写或者写的不好,那么会多非常多无效的沟通,不知道你有没有遇到过,你的一个枚举字段没有文档说明,每个人都要来问一下,你这个枚举有多少有效值,你是不是很烦躁,你的同事比你更烦躁,如果你详细的写好了,每个人看你的文档就能看懂,没有人再来打扰你,如果每个人都把文档写好了,整个公司便会少很多无

ChenHuaiJie0912的博客 1604

别再手动调波形了!用STM32G474的HRTIM+DAC生成精密锯齿波,附完整CubeMX配置

本文详细介绍了如何利用STM32G474的高分辨率定时器(HRTIM)和数模转换器(DAC)协同工作,实现高精度锯齿波生成。通过CubeMX配置指南、关键寄存器计算和实践技巧,帮助开发者快速掌握全硬件实现的波形生成方案,显著提升嵌入式系统的波形控制精度和响应速度。

weixin_28716769的博客 247

R语言做一个 GM (1,1)灰色预测模型

累加生成是GM(1,1)模型的另一个重要步骤,它通过构造累加生成序列,把非线性非平稳时间序列转化为线性平稳时间序列。GM(1,1)是一种基于灰色系统理论的预测模型,通常用于中小样本的非线性、非平稳时间序列数据分析。灰色预测模型的核心是灰度处理,将原始时间序列转化为灰色时间序列。这里使用R语言中的diff函数对时间序列进行一次差分,然后对结果取累加和得到灰度序列。以上是GM(1,1)灰色预测模型在R语言中的实现步骤。需要注意的是,GM(1,1)模型适用于中小样本的时间序列预测,对于长期预测效果可能较差。

Mrrunsen的博客 3842

SpringBoot集成Knife4j/Swagger:接口文档自动生成,告别手写API文档

摘要: 本文介绍如何通过Knife4j(Swagger增强版)自动生成API文档,解决后端开发中手动编写文档的痛点。Knife4j优化了原生Swagger的UI界面,支持文档导出、接口调试等实用功能。集成步骤包括:添加依赖、配置Swagger基础信息、使用注解标注接口。通过@Api、@ApiOperation等注解,可自动生成标准化文档,提升开发效率。文章提供完整代码示例,适用于SpringBoot 2.x/3.x项目,帮助开发者快速实现接口文档自动化管理。

这里没有晦涩理论,只有项目踩坑实录、问题速解、效率工具、源码封装与架构思路。专注项目实战,用最简单直白的方式,带你轻松搞定开发难题,高效写码,快乐下班。 924

解锁RK1126与SC132GS摄像头适配密码:技术与代码全解析

本文详细介绍了瑞芯微RK1126芯片与SC132GS摄像头的适配方法。首先分析了RK1126的四核Cortex-A7处理器、Mali-T860 GPU等硬件特性,以及SC132GS的130万像素、全局快门等技术参数。重点阐述了基于MIPI CSI接口的硬件连接原理和基于V4L2框架的软件驱动设计,并提供了完整的初始化、数据采集和图像处理代码实现。针对常见连接和图像质量问题给出了解决方案,展现了该组合在智能安防、工业检测等领域的应用潜力,为开发者提供了实用的技术参考。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1507

Swagger与knife4j接口测试工具

目录1 传统测试工具postman2 Swagger介绍3 knife4j 1 传统测试工具postman (1)简介 这个工具测试有所弊端要自己填充一些测试数据才可以非常麻烦 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。postman被500万开发者和超100,000家公司用于每月访问1.3亿个API。java开发通常是作为后台开发语言,通常的项目中的接 口开发需要一款测试工具来调试接口,这样无需前端页面也不耽误后台代码的开发进度,postman作为 一个

赵广陆 2489

基于Pascal VOC数据集的YOLOv8目标检测系统实现:人、鸟、猫、牛、电视、车等20类目标识别与UI界面部署全流程详解

VOC 2007、VOC 2012 两个主要版本;每个图像提供 bounding box(目标框)+ 目标类别;共计 20 类,所有图像手工标注,质量高。完整复现 Pascal VOC 20类检测任务成功训练 YOLOv8 模型实现可视化 UI + 实时检测系统支持多平台部署和演示。

YOLO 772

诊断CAPL自动化(3)——封装了接收诊断数据的通用CAPL脚本函数库

DiagGetRespPrimitiveSize (获取诊断响应的单个数据) diagGetPrimitiveData (获取诊断返回的所有数据) DiagGetRespParameter(数值类型) DiagGetRespParameter(字符串类型) DiagGetRespParameter(byte数组)

蚂蚁小兵 6222

Swagger与Knife4j:提升API文档维护效率的利器

在前后端分离架构中,API文档的维护与同步是开发过程中的重要挑战。OpenAPI规范作为一套标准化的API描述语言,通过YAML或JSON格式定义接口的端点、请求响应格式等关键信息,为自动化工具链提供了基础。Swagger作为OpenAPI规范的实现,提供了包括Swagger Editor、Swagger UI和Swagger Codegen在内的核心组件,支持API设计、文档生成和代码自动生成。而Knife4j作为Swagger的增强版,特别针对国内开发者的需求,提供了文档聚合、离线导出和增强调试等功能,

weixin_28835583的博客 216

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

接口文档实战:从零到部署的全流程指南

本文详细介绍了从零开始到部署上线的接口文档全流程指南,涵盖Yapi和Swagger两大工具的使用技巧,帮助开发团队提升协作效率。通过实战案例展示接口文档在前后端分离开发中的关键作用,包括Docker部署、Nginx优化等实用技术方案。

weixin_29294395的博客 385

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

别再手动写接口文档了!Spring Boot 3.x + Knife4j 4.0 保姆级集成教程(附完整配置代码)

本文详细介绍了Spring Boot 3.x与Knife4j 4.0的深度整合,帮助开发者自动生成智能API文档,提升开发效率。通过注解驱动的文档精细化控制和高级功能解锁,Knife4j成为Java开发者的文档利器,支持团队协作和性能调优,实现代码即文档的理想状态。

程涛 689

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 告别SQL盲猜!5种打印SQL语句的实战方案
下一篇: PostMan不香了,IDEA因为Apipost插件这一功能轻松取代
智_永无止境
博客等级 码龄10年 803粉丝 406原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值