Archived
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:
1 parent
c2a8da3e43
commit
41356e89c4
7 files changed
+198
No files matched your search
@@ -0,0 +1,11 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""FastAPI 应用层(Flask → FastAPI 迁移目标)。
|
||||
|
||||
迁移策略:strangler(绞杀者)——新路由在 FastAPI 侧实现,未迁移路由由
|
||||
遗留 Flask 应用兜底(见 web/app.py 的可选 WSGI 挂载)。两侧共享 core/ 的
|
||||
配置、运行时状态与工具,保证迁移期状态一致、行为可比。
|
||||
|
||||
本包只依赖 core/ 与上游服务模块(music_api 等),**不得**从 main.py 导入路由。
|
||||
当前为脚手架:仅迁移 /health、/api/info 两个无鉴权、无状态的系统端点,
|
||||
作为验证「双框架响应契约一致」的样板。
|
||||
"""
|
||||
Reference in new issue
Block a user