# Knife4j Doc Starter 使用说明 基于 Knife4j 4.x + OpenAPI 3 规范的接口文档增强解决方案。 ## 特性 - 基于 OpenAPI 3 规范 - 支持 Spring Cloud Gateway 网关聚合文档 - 支持 JWT 等安全认证配置 - 支持接口分组管理 - 支持中文界面 ## 快速开始 ### 1. 微服务中使用 在需要暴露 API 文档的微服务的 `pom.xml` 中添加依赖: ```xml cn.hfln.framework knife4j-doc-spring-boot-starter ${project.version} ``` 在 `application.yml` 中添加配置: ```yaml lnxx: knife4j: doc: enable: true base-package: com.your.package # 接口所在包路径 title: 服务名称 description: 服务描述 version: ${project.version} enable-security: true # 是否启用安全认证 ``` ### 2. Gateway 网关中使用 #### 2.1 添加依赖 在网关项目的 `pom.xml` 中添加依赖: ```xml cn.hfln.framework knife4j-doc-spring-boot-starter ${project.version} ``` #### 2.2 网关配置 在网关的 `application.yml` 中添加如下配置: ```yaml spring: cloud: gateway: routes: # 文档聚合路由 - id: knife4j uri: http://localhost:${server.port} predicates: - Path=/v3/api-docs/** filters: - RewritePath=/v3/api-docs/(?.*), /$\{path}/v3/api-docs lnxx: knife4j: doc: enable: true title: API 文档中心 description: 微服务接口文档 version: ${project.version} enable-security: true # 配置需要聚合的微服务文档 springdoc: swagger-ui: path: /doc.html api-docs: enabled: true group-configs: - group: 'default' paths-to-match: '/**' packages-to-scan: cn.hfln ``` #### 2.3 创建网关聚合配置类 ```java @Configuration public class Knife4jGatewayConfig { @Bean public RouterFunction apiRouter() { return RouterFunctions.route() .GET("/v3/api-docs/swagger-config", request -> ServerResponse.ok().bodyValue(swaggerConfig())) .build(); } private Map swaggerConfig() { Map config = new HashMap<>(); // 配置要聚合的微服务,key 为服务名,value 为文档地址 Map services = new HashMap<>(); services.put("用户服务", "/user-service/v3/api-docs"); services.put("订单服务", "/order-service/v3/api-docs"); // ... 添加更多服务 config.put("urls", services); return config; } } ``` ### 3. 访问文档 - 单个服务文档地址:`http://服务地址:端口/doc.html` - 网关聚合文档地址:`http://网关地址:端口/doc.html` ## 注意事项 1. 网关聚合时,确保所有微服务的 OpenAPI 文档都已启用 2. 如果启用了安全认证,需要在 Swagger UI 界面配置对应的认证信息 3. 建议在生产环境关闭或限制文档访问 4. 网关层建议配置文档访问的路由限制 ## 常见问题 1. 文档无法访问 - 检查服务是否正常启动 - 检查网关路由配置是否正确 - 检查安全认证配置 2. 网关聚合失败 - 检查微服务的文档地址是否可访问 - 检查网关路由配置是否正确 - 检查网络连通性 3. 认证失败 - 检查认证配置是否正确 - 确认 Token 格式是否正确 - 检查认证服务是否正常 ## 配置说明 | 配置项 | 说明 | 默认值 | |-------|------|--------| | lnxx.knife4j.doc.enable | 是否启用文档 | true | | lnxx.knife4j.doc.base-package | 接口扫描包路径 | - | | lnxx.knife4j.doc.title | 文档标题 | API 文档 | | lnxx.knife4j.doc.description | 文档描述 | - | | lnxx.knife4j.doc.version | 文档版本 | 1.0.0 | | lnxx.knife4j.doc.enable-security | 是否启用安全认证 | false | ## 版本说明 - 基于 Knife4j 4.x - 支持 Spring Boot 2.6.x 及以上版本 - 支持 Spring Cloud 2021.x 及以上版本