# 端点分流清单(B1 第一步) > 数据来自 `main` 分支的 FastAPI 路由装饰器,2026-09-30 实测 245 个端点。归属按 `docs/spec/platform-vs-business.md` 的判据判定:**业务事实 → APS;平台基础能力 → 平台;与第三方系统的对接 → 独立 Provider**。 ## 0 提取方式(可复现) ```bash # 在 main 分支上扫描所有 @app/@router 装饰器 git grep -n -E '^\s*@(app|router)\.(get|post|put|patch|delete)\(' main -- server | wc -l ``` ## 1 总量 | 归属 | 端点数 | 占比 | 去向 | | --- | --- | --- | --- | | APS | 143 | 58.4% | 迁进 `aps/src/aps/api`(B1) | | 平台 | 64 | 26.1% | 由平台 TS 侧重写(不搬代码) | | 第三方 Provider | 13 | 5.3% | 拆成独立 Provider(A8 / B 线) | | 丢弃 | 25 | 10.2% | 不迁移 | | **合计** | **245** | 100% | — | > 任务表 B1 里写的「210 个端点」指的是 `server/gateway/app.py` 这一个文件里的数量;全仓(含 `masterdata_api` / `governance_api` / `mps_api` / `plan_api` / `agent_api` 等子路由)是 245 个。 ## 2 APS 侧清单(迁入 aps/) 共 143 个端点,分 42 组: | 资源组 | 端点数 | 方法 | | --- | --- | --- | | `flex` | 16 | GET / POST | | `gov` | 12 | GET / POST | | `drawings` | 8 | DELETE / GET / POST | | `rules` | 8 | DELETE / GET / POST / PUT | | `plan` | 7 | GET | | `params` | 7 | GET / POST | | `mesh` | 7 | GET / POST | | `*`(`/plans/{plan_id}/...` 挂载路由) | 6 | GET / POST | | `dxf` | 5 | GET / POST | | `saga` | 5 | GET / POST | | `world` | 4 | GET | | `schedule` | 4 | POST | | `rebuild` | 4 | GET / POST | | `orders` | 3 | GET / POST | | `master` | 3 | GET / POST | | `mrp` | 3 | GET / POST | | `analytics` | 3 | GET | | `sop` | 3 | GET / POST | | `calendar` | 3 | GET / POST | | `forecast` | 2 | GET / POST | | `rush` | 2 | POST | | `multimodal` | 2 | POST | | `times` | 2 | GET / POST | | `constraints` | 2 | GET / POST | | `checkpoints` | 2 | GET | | `reports` | 2 | GET | | `resources` | 2 | GET | | `trace` | 2 | GET / POST | | `readiness` | 1 | GET | | `attribution` | 1 | GET | | `guidance` | 1 | GET | | `scenario` | 1 | GET | | `timeline` | 1 | GET | | `versions` | 1 | GET | | `stage` | 1 | POST | | `confirm` | 1 | POST | | `pending` | 1 | GET | | `draft` | 1 | POST | | `persist` | 1 | POST | | `traces` | 1 | GET | | `schedule-versions` | 1 | GET | | `gap` | 1 | POST | ## 3 平台侧清单(平台重写,不搬代码) 共 64 个端点,分 17 组: | 资源组 | 端点数 | 方法 | | --- | --- | --- | | `projects` | 12 | DELETE / GET / PATCH / POST | | `sessions` | 12 | DELETE / GET / PATCH / POST / PUT | | `auth` | 9 | GET / POST | | `knowledge` | 6 | GET / POST | | `jobs` | 4 | GET / POST | | `templates` | 3 | GET / POST | | `settings` | 3 | GET / POST | | `intents` | 2 | GET | | `health` | 2 | GET | | `import` | 2 | POST | | `workspace` | 2 | GET / PUT | | `project-files` | 2 | DELETE / POST | | `features` | 1 | GET | | `chat` | 1 | POST | | `packs` | 1 | GET | | `rag` | 1 | POST | | `system` | 1 | GET | ## 4 第三方 Provider(从 APS 里剥出来) > 这一组按判据第 3 条单列:它们是与 SAP / MES / WMS 的对接,不是 APS 自己的业务。B 线拆分时搬成各自的 Provider(A8)。 共 13 个端点,分 3 组: | 资源组 | 端点数 | 方法 | | --- | --- | --- | | `sap` | 5 | GET / POST | | `mes` | 5 | GET / POST | | `wms` | 3 | GET / POST | ## 5 丢弃 共 25 个端点,分 6 组: | 资源组 | 端点数 | 方法 | | --- | --- | --- | | `skills` | 8 | GET / POST | | `mcp` | 8 | GET / POST | | `actions` | 4 | POST | | `integrations` | 2 | GET / POST | | `automation` | 2 | GET / POST | | `invoke` | 1 | POST | ## 6 迁移顺序建议 | 批次 | 内容 | 理由 | | --- | --- | --- | | 1 | APS 侧的**只读**端点:`master` / `orders` / `calendar` / `params` / `analytics` / `reports` / `views` / `plan`(GET) | 对应契约草案里的 7 个只读能力,B5 与 A5 都要用 | | 2 | APS 侧的求解与闭环:`schedule` / `flex` / `mrp` / `mps` / `saga` / `world` / `checkpoints` / `rebuild` | 需要 `engines` 与 `state` 一起搬 | | 3 | APS 侧的图纸与导入:`drawings` / `dxf` / `multimodal` / `times` | 依赖解析类依赖,独立可搬 | | 4 | APS 侧治理:`gov` / `rules` | 由 B4 重写,不搬旧实现 | | 5 | 第三方 Provider:`sap` / `mes` / `wms` | 与 APS 解耦后再做(A8) | ## 7 交叉引用检查(B1 验收的另一半) 分流完成后要能证明「无交叉引用」: | 检查 | 方式 | | --- | --- | | APS 不 import 平台 | `pytest` 里的 AST 守卫(B0 已加) | | 平台不 import APS | 平台 `pnpm check:deps` + 跨库访问检查(A1.6 已实现) | | 路由清单与代码一致 | 迁移后重新跑本文的提取脚本,比对数量与分组 |