HTTP 边界
工作区恰好存在两个对外 HTTP 边界;所有业务 HTTP API 一律挂载在 /api/v1 之下。
api_service —— 内部管理边界
- 面向内部管理与 SSR 面板,追求对全部服务接口的全量覆盖,而非按需裁剪。
passport_web的 SSR 服务端调用它,浏览器只与 SSR 服务交互;admin_web直接调用它。- 内部调用方将其作为整体消费,不绕过它直接触达业务服务。
apps/openapi —— 用户直连边界
- 开放平台的对外出口:OAuth 授权端点(authorize / token / introspect / revoke / jwks / userinfo)与按 scope 裁剪的资源 API。
- 三方应用的用户只与 openapi 通信,永远不会触达
api_service。
运维端点豁免
/health 与 /metrics 不受 /api/v1 前缀约束,由两个边界应用分别暴露。
何时用哪个
| 场景 | 边界 |
|---|---|
| 用户控制台(SSR)、管理后台 | api_service |
| 三方应用 OAuth 授权、scope 内资源调用 | apps/openapi |
| 业务服务接收支付结果 | NATS 事件 payment.order.paid(非 HTTP) |