当前位置: 首页 > article >正文

网关路由配置(Gateway Filters)

 - id: system-admin-api # 路由的编号uri: grayLb://system-serverpredicates: # 断言,作为路由的匹配条件,对应 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
http://www.lryc.cn/news/2403506.html

相关文章:

  • 实现单例模式的常见方式
  • Go 为何天生适合云原生?
  • 数仓面试提问:在资源(计算、存储、人力)受限的情况下,如何优先处理需求并保证核心交付?
  • 第七十四篇 高并发场景下的Java并发容器:用生活案例讲透技术原理
  • day20 leetcode-hot100-38(二叉树3)
  • Python打卡训练营学习记录Day46
  • 使用 C/C++ 和 OpenCV 实现滑动条控制图像旋转
  • 【 java 集合知识 第一篇 】
  • 护网行动面试试题(2)
  • 使用WebSocket实时获取印度股票数据源(无调用次数限制)实战
  • 阿里140 补环境日志
  • uniapp map组件的基础与实践
  • 在 Kali 上打造渗透测试专用的 VSCode 环境
  • 《前端面试题:CSS3新特性》
  • 极速互联·智控未来——SG-Can(FD)Hub-600 六通道CANFD集线器
  • OpenVINO环境配置--OpenVINO安装
  • Linux top 命令 的使用总结
  • ajax学习手册
  • Python爬虫实战:研究urlunparse函数相关技术
  • [蓝桥杯]采油
  • OpenLayers 地图定位
  • 黑龙江云前沿服务器租用:便捷高效的灵活之选​
  • PyTorch中matmul函数使用详解和示例代码
  • 论文解读:Locating and Editing Factual Associations in GPT(ROME)
  • NoSQl之Redis部署
  • 学习设计模式《十二》——命令模式
  • 十三、【核心功能篇】测试计划管理:组织和编排测试用例
  • 手撕 K-Means
  • SmolVLA: 让机器人更懂 “看听说做” 的轻量化解决方案
  • day45python打卡