bf57aed17a
- git mv sanguo_web → _retired/sanguo_web/(git 历史保全+墓碑 README:
归档原因/拍板记录/现役=sanguo_api)
- 退出启动面三处: promote.sh ALL_MODS 白名单(15→14 模块)+docker/Dockerfile:63
COPY+docker/Dockerfile.nas:16 COPY——不可再被部署或启动为服务
- 背景(架构审计 P0-3): 硬编码 SECRET_KEY/admin123 默认口令/CORS 全开/可下
真实订单/零测试/与 sanguo_api 路由冲突; 生产从未部署为服务, 纯误启动风险
(README 旧「生产模式 uvicorn sanguo_web」指引已于 f6ca85e 勘误)
- three-env §3.1 模块清单+§12 矩阵行同步; session-guide §5 角色表前端行
勘误(旧表把 sanguo_web 当前端模块推——实为 legacy 后端, 前端=frontend/)
- 零外部 import(runuweb/tests/packages 全 grep 实证), pytest testpaths=tests
不受影响
Co-Authored-By: Claude Code <notify@anthropic.com>
84 lines
2.1 KiB
Python
84 lines
2.1 KiB
Python
"""
|
|
系统路由
|
|
提供健康检查、系统信息等接口
|
|
"""
|
|
from fastapi import APIRouter, Depends
|
|
from datetime import datetime
|
|
import sys
|
|
import time
|
|
import logging
|
|
|
|
from ..models import HealthResponse, SystemInfo
|
|
from ..deps import get_vn_service
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/health", response_model=HealthResponse)
|
|
async def health_check():
|
|
"""
|
|
健康检查端点
|
|
|
|
返回 API 服务状态
|
|
"""
|
|
return HealthResponse(
|
|
status="healthy",
|
|
service="Sanguo VeighNa Web API",
|
|
version="1.0.0",
|
|
timestamp=datetime.utcnow()
|
|
)
|
|
|
|
|
|
@router.get("/info", response_model=SystemInfo)
|
|
async def get_system_info(vn_service=Depends(get_vn_service)):
|
|
"""
|
|
获取系统信息
|
|
|
|
包括版本、运行时间、连接状态等
|
|
"""
|
|
# 获取连接的网关数量
|
|
gateways = await vn_service.get_connected_gateways()
|
|
connected_count = sum(1 for g in gateways if g["status"] == "connected")
|
|
|
|
# 获取策略数量(占位)
|
|
strategy_count = 0
|
|
|
|
return SystemInfo(
|
|
version="1.0.0",
|
|
vnpy_version="4.4.0",
|
|
python_version=f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}",
|
|
uptime=time.time(), # 实际应该记录启动时间
|
|
connected_gateways=connected_count,
|
|
active_strategies=strategy_count
|
|
)
|
|
|
|
|
|
@router.get("/status")
|
|
async def get_system_status(vn_service=Depends(get_vn_service)):
|
|
"""
|
|
获取详细系统状态
|
|
|
|
包括网关、账户、持仓、订单等
|
|
"""
|
|
try:
|
|
accounts = await vn_service.get_accounts()
|
|
positions = await vn_service.get_positions()
|
|
orders = await vn_service.get_orders()
|
|
gateways = await vn_service.get_connected_gateways()
|
|
|
|
return {
|
|
"status": "running",
|
|
"accounts_count": len(accounts),
|
|
"positions_count": len(positions),
|
|
"orders_count": len(orders),
|
|
"gateways": gateways
|
|
}
|
|
except Exception as e:
|
|
logger.error(f"Error getting system status: {e}")
|
|
return {
|
|
"status": "error",
|
|
"error": str(e)
|
|
}
|