auto_trade_sys/backend/api/main.py
薇薇安 186b2f2424 a
2026-01-13 20:08:11 +08:00

68 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
FastAPI应用主入口
"""
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from api.routes import config, trades, stats, dashboard, account
import os
from pathlib import Path
# 加载.env文件
try:
from dotenv import load_dotenv
backend_dir = Path(__file__).parent.parent
project_root = backend_dir.parent
env_file = backend_dir / '.env'
if not env_file.exists():
env_file = project_root / '.env'
if env_file.exists():
load_dotenv(env_file)
else:
load_dotenv(project_root / '.env', override=False)
except ImportError:
pass
except Exception:
pass
app = FastAPI(
title="Auto Trade System API",
version="1.0.0",
description="币安自动交易系统API"
)
# CORS配置允许React前端访问
cors_origins = os.getenv('CORS_ORIGINS', 'http://localhost:3000,http://localhost:5173,http://as.deepx1.com').split(',')
app.add_middleware(
CORSMiddleware,
allow_origins=cors_origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 注册路由
app.include_router(config.router, prefix="/api/config", tags=["配置管理"])
app.include_router(trades.router, prefix="/api/trades", tags=["交易记录"])
app.include_router(stats.router, prefix="/api/stats", tags=["统计分析"])
app.include_router(dashboard.router, prefix="/api/dashboard", tags=["仪表板"])
app.include_router(account.router, prefix="/api/account", tags=["账户数据"])
@app.get("/")
async def root():
return {
"message": "Auto Trade System API",
"version": "1.0.0",
"docs": "/docs"
}
@app.get("/api/health")
async def health():
return {"status": "ok"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8001)