1. Spring Cloud Gateway与Knife4j 4.3的完美结合
微服务架构下,每个服务都有自己的API文档,开发人员需要记住每个服务的文档地址,这无疑增加了调试的复杂度。Spring Cloud Gateway作为微服务架构中的API网关,天然具备服务发现和路由转发能力。而Knife4j 4.3作为Swagger的增强版,提供了强大的文档聚合功能。两者的结合,可以让我们在网关层面统一管理和调试所有微服务的API文档。
我在实际项目中遇到过这样的场景:一个电商系统有商品服务、订单服务、用户服务等十几个微服务,每个服务都有自己的Swagger文档。开发人员调试时需要频繁切换不同服务的文档地址,非常不便。后来我们引入了Knife4j的网关聚合功能,问题迎刃而解。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础配置
2.1 依赖引入
首先需要在各个微服务中引入Knife4j的依赖。对于基于Spring Boot 3的项目,需要使用特定的starter:
xml复制<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
这里有个坑需要注意:Knife4j 4.3不再依赖Springfox,而是基于SpringDoc实现。如果你的项目之前使用的是Springfox,需要特别注意API注解的变化。
2.2 基础配置
在每个微服务的application.yml中,需要配置基本的Swagger信息:
yaml复制springdoc:
swagger-ui:
path: /swagger-ui.html
api-docs:
path: /v3/api-docs
group-configs:
- group: 'default'
paths-to-match: '/**'
packages-to-scan: com.youlai.system.controller
我建议将pa
