为什么需要接口网关
当项目对接多个外部平台(飞书、微信、PDF 生成等)时,直接暴露各服务会导致鉴权逻辑分散、配置难以统一。引入接口网关可以集中处理通用逻辑。
1. 基础架构
使用 Express 作为网关入口,通过中间件链处理请求:
const app = express();
app.use(express.json());
app.use(cors());
app.use('/api', feishuRoutes);
app.use('/api', wechatRoutes);
2. 会员鉴权中间件
在路由层加入统一的会员校验,避免每个接口重复编写:
const check = checkMemberValid(memberKey, apiPath);
if (!check.valid) return res.status(403).json({ code: 403, msg: check.msg });
3. 多租户配置
通过 memberKey 区分不同租户,动态加载对应的 App ID、Token 等配置,实现一套代码服务多个客户。
4. 进程管理
生产环境使用 PM2 管理进程,配合 watch 与 ignore_watch 实现热重载,同时保证日志与临时文件不被监听。
小结
接口网关的核心价值在于「收口」——把鉴权、跨域、日志、路由统一在一处处理,让业务接口专注于自身逻辑。