增加接口文档禁用
This commit is contained in:
40
main.py
40
main.py
@@ -13,29 +13,30 @@ from app.logger import get_logger, LoggerManager
|
||||
LoggerManager.setup_logging()
|
||||
logger = get_logger("main")
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
# 启动时初始化
|
||||
logger.info("🚀 应用启动中...")
|
||||
|
||||
|
||||
try:
|
||||
# 初始化数据库
|
||||
logger.info("📊 初始化数据库连接...")
|
||||
await init_db()
|
||||
logger.info("✅ 数据库连接成功")
|
||||
|
||||
|
||||
# 初始化Redis
|
||||
logger.info("🔴 初始化Redis连接...")
|
||||
await redis_manager.connect()
|
||||
logger.info("✅ Redis连接成功")
|
||||
|
||||
|
||||
logger.info(f"🎉 {settings.app_name} 启动完成!")
|
||||
yield
|
||||
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"❌ 应用启动失败: {e}")
|
||||
raise
|
||||
|
||||
|
||||
finally:
|
||||
# 关闭时清理
|
||||
logger.info("🛑 应用关闭中...")
|
||||
@@ -44,14 +45,25 @@ async def lifespan(app: FastAPI):
|
||||
logger.info("✅ Redis连接已关闭")
|
||||
except Exception as e:
|
||||
logger.error(f"❌ Redis关闭时出错: {e}")
|
||||
|
||||
|
||||
logger.info("👋 应用已关闭")
|
||||
|
||||
|
||||
app = FastAPI(
|
||||
title=settings.app_name,
|
||||
version="1.0.0",
|
||||
lifespan=lifespan
|
||||
lifespan=lifespan,
|
||||
docs_url=(
|
||||
"/docs"
|
||||
if not settings.disable_docs and settings.environment != "production"
|
||||
else None
|
||||
),
|
||||
redoc_url=(
|
||||
"/redoc"
|
||||
if not settings.disable_docs and settings.environment != "production"
|
||||
else None
|
||||
),
|
||||
openapi_url="/openapi.json" if not settings.disable_docs else None,
|
||||
)
|
||||
|
||||
# 添加CORS中间件
|
||||
@@ -73,8 +85,9 @@ async def root():
|
||||
if settings.environment == "production":
|
||||
logger.warning("🚫 生产环境下禁止访问根接口")
|
||||
from fastapi import HTTPException
|
||||
|
||||
raise HTTPException(status_code=404, detail="Not Found")
|
||||
|
||||
|
||||
logger.info("📝 根接口被访问")
|
||||
return {"message": f"Welcome to {settings.app_name}"}
|
||||
|
||||
@@ -85,17 +98,14 @@ async def health_check():
|
||||
if settings.environment == "production":
|
||||
logger.warning("🚫 生产环境下禁止访问健康检查接口")
|
||||
from fastapi import HTTPException
|
||||
|
||||
raise HTTPException(status_code=404, detail="Not Found")
|
||||
|
||||
|
||||
logger.debug("💓 健康检查接口被访问")
|
||||
return {"status": "healthy"}
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import uvicorn
|
||||
uvicorn.run(
|
||||
"main:app",
|
||||
host="0.0.0.0",
|
||||
port=8000,
|
||||
reload=settings.debug
|
||||
)
|
||||
|
||||
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=settings.debug)
|
||||
|
||||
Reference in New Issue
Block a user