Gateway整合knife4报错404 (Not Found)

在 Spring Cloud Gateway 中整合 Knife4j 后,访问 http://localhost:8000/doc.html 报错,提示 /v3/api-docs/swagger-config 404

这是 Spring Cloud Gateway + Knife4j 的典型配置问题。根本原因在于:

Gateway 本身没有接口文档(Swagger/OpenAPI) ,它只是一个路由网关。真正的文档在各个微服务中,Gateway 需要将 /doc.html/v3/api-docs/** 等请求 正确转发到下游服务 ,或者 聚合多个服务的文档

而你只加了 knife4j-gateway-spring-boot-starter,但 没有配置文档聚合或路由规则 ,导致前端请求 /v3/api-docs/swagger-config 时,Gateway 找不到对应处理路径,返回 404。

在 Gateway 中配置聚合
xml 复制代码
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-gateway-spring-boot-starter</artifactId>
    <version>4.5.0</version>
</dependency>
application.yml 中配置聚合规则
yaml 复制代码
knife4j:
  gateway:
    enabled: true
    strategy: discover  # 自动发现(基于服务注册中心)
    # 或者手动配置 routes(见下方)
    routes:
      - name: 用户服务
        url: /user-service/v3/api-docs
        service-name: user-service   # 注册中心中的服务名
      - name: 内容服务
        url: /content-service/v3/api-docs
        service-name: content-service

注意:url 路径必须与你在 Gateway 中配置的路由前缀一致!

确保 Gateway 有对应的路由规则

(转发 /user-service/** 到 user-service):

yaml 复制代码
spring:
  cloud:
    gateway:
      routes:
        - id: user-service
          uri: lb://user-service
          predicates:
            - Path=/user-service/**

这样,当你访问 http://localhost:8000/doc.html 时:

  • Knife4j 前端会请求 /v3/api-docs/swagger-config → 由 knife4j-gateway-starter 拦截并返回聚合配置
  • 然后按服务加载各自的 /v3/api-docs
相关推荐
Moe4887 小时前
Spring AI Advisors:从链式增强到递归顾问
java·后端
敖正炀7 小时前
ReentrantReadWriteLock、ReentrantLock、synchronized 对比
java
cike_y7 小时前
Java反序列化漏洞-Shiro721流程分析
java·反序列化·shiro框架
极创信息7 小时前
信创系统认证服务怎么做?从适配到验收全流程指南
java·大数据·运维·tomcat·健康医疗
格鸰爱童话7 小时前
向AI学习项目技能(六)
java·人工智能·spring boot·python·学习
白宇横流学长8 小时前
停车场管理系统的设计与实现
java
Flittly8 小时前
【SpringAIAlibaba新手村系列】(18)Agent 智能体与今日菜单应用
java·spring boot·agent
木井巳8 小时前
【递归算法】目标和
java·算法·leetcode·决策树·深度优先
亦暖筑序8 小时前
手写 Spring AI Agent:让大模型自主规划任务,ReAct 模式全流程拆解
java·人工智能·spring
敖正炀8 小时前
ReentrantLock 与 synchronized对比
java