CadHubManage/app/main.py

61 lines
1.5 KiB
Python

"""
FastAPI主入口文件
"""
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.api.v1 import websocket, files
from app.core.websocket_manager import websocket_manager
from app.core.software_manager import software_manager
from app.core.log_manager import log_manager
# 创建FastAPI实例
app = FastAPI(
title="CadHubManage API",
description="通过Web接口控制Windows服务器上软件的管理系统",
version="1.0.0"
)
# 初始化管理器之间的关联
software_manager.set_websocket_manager(websocket_manager)
software_manager.set_log_manager(log_manager)
# 启动和关闭事件
@app.on_event("startup")
async def startup_event():
"""应用启动时的初始化"""
await log_manager.start()
@app.on_event("shutdown")
async def shutdown_event():
"""应用关闭时的清理"""
await log_manager.stop()
# 配置CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 生产环境应该设置具体的域名
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 注册API路由
app.include_router(websocket.router, prefix="/api/v1/ws", tags=["WebSocket"])
app.include_router(files.router, prefix="/api/v1", tags=["Files"])
@app.get("/")
async def root():
"""根路径"""
return {
"message": "CadHubManage API服务正在运行",
"version": "1.0.0",
"docs": "/docs"
}
@app.get("/health")
async def health_check():
"""健康检查接口"""
return {"status": "healthy"}