feat(web): FastAPI 脚手架(strangler 迁移起点)

新增 web/ 包,与 Flask 应用并存、共享 core/:
- web/app.py     create_app 工厂;已迁移路由挂 /api/v1,可挂遗留 Flask 兜底
- web/main.py    uvicorn 入口(sys.path 补项目根)
- web/response.py 响应工具,与 Flask APIResponse 的 JSON 契约逐字段对齐
- web/routers/system.py 迁移样板:/api/v1/health、/api/v1/api/info
- requirements-fastapi.txt 迁移目标依赖(不影响当前生产 Flask 部署)

验证:
- 奇偶校验(.zcode/refactor/parity.py)Flask /health vs FastAPI /api/v1/health、
  /api/info vs /api/v1/api/info —— 状态码/顶层键/响应体全一致
- uvicorn 真实启动 200;Flask fallback 挂载下 /api/v1/* 走 FastAPI、/* 走 Flask 同为 200

当前仅样板端点;生产服务器切换与状态统一见后续迁移阶段。
This commit is contained in:
snowy-yang committed 2026-09-26 00:17:56 +08:00
1 parent c2a8da3e43
commit 41356e89c4
7 files changed
+198

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
# FastAPI 迁移目标依赖(当前生产仍以 Flask + waitress 运行,本文件不影响既有部署)
# 待阶段 C 切换生产服务器后,合并进 requirements.txt 并移除 Flask 相关项。
# 版本上界口径同 requirements.txt(第 95 条 P2-6:防上游大版本静默破坏)。
fastapi>=0.115,<1.0
uvicorn>=0.30,<1.0