网关路由配置(Gateway Filters)

 - id: system-admin-api # 路由的编号
          uri: grayLb://system-server
          predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
            - Path=/admin-api/system/**
          filters:
              - RewritePath=/admin-api/system/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
        

我总结一下上面的意思:

请求路径如果是以/admin-api/system/开头的,全部被网关转发到system-server服务里面去

id当前路由的唯一标识符。

一般在代码中你不需要特别处理这个 id,主要是配置用途

其次

filters:
  - RewritePath=/admin-api/system/v3/api-docs, /v3/api-docs

这里的 filtersGateway 过滤器(Filter) 的配置,用于在请求转发前或响应返回后,修改请求或响应的行为

🧩 filters 是什么?

在 Spring Cloud Gateway 中:

  • 每个路由(Route)可以定义一组过滤器(filters

  • 用于对 HTTP 请求或响应 做增强、处理、变更

  • 包括:修改请求路径、添加请求头、权限校验、日志、限流等

这是 Spring Cloud Gateway 提供的一个内置过滤器,叫做 RewritePath,用于 重写请求路径

🔍 作用:

当用户访问路径 /admin-api/system/v3/api-docs 时:

  • 原始请求路径是:/admin-api/system/v3/api-docs

  • Gateway 把它重写为:/v3/api-docs

  • 然后再转发到目标服务 grayLb://system-server

✅ 结果:

假设 system-server 服务的 Swagger 接口暴露在 /v3/api-docs,但是你对外提供的是一个更清晰的 API 网关路径 /admin-api/system/v3/api-docs,通过这个 filter 就可以实现映射。

🧰 常用 Gateway Filters 示例

Filter 名称作用示例
AddRequestHeader添加请求头- AddRequestHeader=X-Token, abc123
RemoveRequestHeader移除请求头- RemoveRequestHeader=Cookie
RewritePath重写请求路径- RewritePath=/admin/(.*), /$1
PrefixPath添加前缀到请求路径- PrefixPath=/api
StripPrefix删除路径前缀(用于微服务场景)- StripPrefix=1
Retry请求重试策略- name: Retry
自定义过滤器复杂逻辑(鉴权、灰度、限流等)- name: MyCustomFilter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值