""" FastAPI 主应用 """ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from contextlib import asynccontextmanager from app.core.config import settings from app.core.redis_client import init_redis, close_redis from app.api.v1 import api_router @asynccontextmanager async def lifespan(app: FastAPI): """应用生命周期管理""" # 启动时初始化 Redis await init_redis() yield # 关闭时清理 Redis 连接 await close_redis() # 创建 FastAPI 应用 app = FastAPI( title=settings.APP_NAME, version=settings.APP_VERSION, description="NEX Docus - 团队协作文档管理平台", debug=settings.DEBUG, lifespan=lifespan, ) # 配置 CORS app.add_middleware( CORSMiddleware, allow_origins=settings.CORS_ORIGINS, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # 注册 API 路由 app.include_router(api_router, prefix="/api/v1") @app.get("/") async def root(): """根路径""" return { "name": settings.APP_NAME, "version": settings.APP_VERSION, "status": "running" } @app.get("/health") async def health_check(): """健康检查""" return {"status": "healthy"} if __name__ == "__main__": import uvicorn uvicorn.run( "main:app", host=settings.HOST, port=settings.PORT, reload=settings.DEBUG, )