| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from contextlib import asynccontextmanager
- from fastapi import FastAPI
- from fastapi.middleware.cors import CORSMiddleware
- from app.api.v1 import documents, export, export_records
- from app.core.exceptions import register_exception_handlers
- from app.services.storage_monitor import start_background_monitor
- @asynccontextmanager
- async def lifespan(app: FastAPI):
- # 启动后台磁盘监控(每 30 分钟检查一次)
- monitor_task = start_background_monitor()
- yield
- # 关闭时取消后台任务
- monitor_task.cancel()
- def create_app() -> FastAPI:
- app = FastAPI(
- title="Axonix Text Editor API",
- version="0.1.0",
- description="文本编辑器后端 API —— 阶段 0:文档 CRUD + 导出下载",
- lifespan=lifespan,
- )
- # CORS(开发阶段放开,生产按需收紧)
- app.add_middleware(
- CORSMiddleware,
- allow_origins=["*"],
- allow_credentials=True,
- allow_methods=["*"],
- allow_headers=["*"],
- )
- # 全局异常处理
- register_exception_handlers(app)
- # 路由注册
- app.include_router(documents.router, prefix="/api/v1")
- app.include_router(export.router, prefix="/api/v1")
- app.include_router(export_records.router, prefix="/api/v1")
- return app
- app = create_app()
|