微服务网关路径 + Feign 调用 极简总结

一、核心结论

  1. 接口文档里的路径都是真实业务路径/api/v1/xxx,不带 /wemedia/user 这类网关标识。
  2. 服务自己的 Controller 只写业务路径/api/v1/xxx,保持纯净、独立、可直接测试。
  3. Feign 调用 = 目标服务真实路径,完全一致,不带任何网关前缀。
  4. 前端访问带的 /wemedia//user 是网关路由标识,由网关配置决定是否剥离。

二、两种网关配置对比(最关键)

1)带 StripPrefix=1(以 wemedia 为例)

复制代码
- id: wemedia
  uri: lb://leadnews-wemedia
  predicates: Path=/wemedia/**
  filters: StripPrefix=1
  • StripPrefix=1:转发时自动去掉第一个路径段 /wemedia
  • 前端请求:/wemedia/api/v1/channel/list
  • 网关转发后:/api/v1/channel/list
  • wemedia 真实接口:/api/v1/channel
  • admin 要调用它,必须写完整带前缀路径:/wemedia/api/v1/channel

2)不带 StripPrefix(以 user/auth 为例)

复制代码
- id: admin-user-auth
  uri: lb://leadnews-admin
  predicates: Path=/user/api/v1/auth/**
  • 无 StripPrefix:路径原样转发,不剥离
  • 前端请求:/user/api/v1/auth/list
  • 网关直接转给 admin:/user/api/v1/auth/list
  • admin 接口必须写:/user/api/v1/auth
  • admin 通过 Feign 调用 user 真实接口:/api/v1/auth

三、为什么 admin 要多写一层前缀?

  • admin 是后台统一入口,接收前端网关路由过来的完整路径
  • 权限、日志、统一格式都在 admin 控制
  • 再通过 Feign 调用目标服务的纯净业务接口
  • 结构清晰、职责分离、后期极好处维护

四、最终三层路径规则(背会就不会错)

  1. 前端 → 网关 :带标识 /wemedia/xxx/user/xxx
  2. 网关 → admin:按配置决定是否剥离前缀
  3. admin → Feign → 目标服务 :只用纯净业务路径 /api/v1/xxx
相关推荐
CodeSheep程序羊2 小时前
宇树科技,即将上市!
java·c语言·c++·人工智能·python·科技·硬件工程
白露与泡影2 小时前
Java 8老系统旁路接入AI Gateway:不升级JDK也能用AI
java·人工智能·gateway
Misnearch2 小时前
Java中创建Map的做法
java·hashmap
scan7242 小时前
从runtime获取信息
java·服务器·前端
心之伊始2 小时前
Spring Cloud Gateway RequestRateLimiter 实战:Redis 令牌桶限流从配置到本地压测验证
java·架构·源码分析·csdn
ai产品老杨2 小时前
【架构深评】如何基于 GB28181 与 RTSP 协议栈,构建解耦、异构的百万级 AI 视频流媒体管理平台?(附开源源码)
人工智能·架构·媒体
java_cj2 小时前
K8s入门第一课:从零理解Kubernetes核心概念与架构设计
运维·云原生·容器·架构·kubernetes
段一凡-华北理工大学2 小时前
工业领域的Hadoop架构学习~系列文章22:Hadoop生态展望 - 面向未来的技术演进
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题 第105题】【并发篇】第5题:说一下 synchronized 关键字的底层原理?
java·开发语言·面试
yueping22 小时前
【无标题】
java·开发语言