
老炮淘金:13 个真实企业项目的架构高光 · S02基于一套零售基础档案微服务源码实读关键词:接口暴露面 · Controller 分包 · 鉴权边界 · 路径约定 · Feign 内部接口👋 欢迎阅读🏠个人主页:知守观📘我的专栏:老炮淘金:13个真实企业项目的架构高光💻当前内容:接口暴露面管理文章目录引言适合谁读包名就是信任级别同名类三份拷贝的账/internal/ 是跨团队的约定防线不在代码里约定已经开始侵蚀这套方案怎么用才不变形迁移检查清单老炮点评引言接手一个微服务,我习惯性先问一个问题:这些接口,分别给谁调的?给运营后台调的,要过登录态;给商店业务调的,也要过登录态,但权限模型不同;给 APP 调的,要过 token;给别的微服务调的,压根不该出内网;给所有人查的公共数据,免鉴权;还有自用调试的接口,只给自己人用。调用方不同,信任级别就不同。但在大多数工程的 controller 目录里,它们按字母顺序混在一起,看不出任何区别。最近读了一套零售基础档案服务的代码,它给了一个用目录结构回答的方案:controller 下面不按业务分包,按调用方的信任级别分包。这套方案值得拆开来评。这套方案最大的敌人不是设计,是半年后的新人。本篇你能拿走三样东西:按调用方信任级别切 Controller 的核心三层隔离做法:external / externalno / internal包名、注解、URL 前缀三者一致性的校验思路,以及同名类三份拷贝背后的取舍防止约定被侵蚀的三条规矩,含一个 CI 校验思路适合谁读适合有统一网关、服务间调用量大的平台团队;不适合单体应用,或网关规则缺失、暂时没人维护访问控制的团队。包名就是信任级别这个工程的 controller 目录长这样:controller/ ├── external/