Skip to content

对外接口与路由

本系统对外提供 REST API 与 WebSocket,用于脚本/界面控制与实时监控。

REST 路由表

健康检查 (routes/health.py)

方法路径说明
GET/health四层综合健康检查(DB + Adapter + TCP + PHY)
GET/health/nodes仅节点深度检查(gateway 连接 + probe + PHY)

系统配置 (routes/config.py)

方法路径说明
GET/config获取当前系统配置(节点端点、适配器、DB 等)
POST/config/location-init/run手动触发位置初始化脚本

场景管理 (routes/scenarios.py)

方法路径说明
GET/scenarios合并列表(DB + YAML)
GET/scenarios/{scenario_id}场景详情(先查 DB,再查 YAML)
POST/scenarios创建场景(写入 DB + 自动同步 YAML)
PUT/scenarios/{scenario_id}更新场景
DELETE/scenarios/{scenario_id}删除场景(含 YAML 清理)
POST/scenarios/import从 YAML 文件导入场景到 DB
POST/scenarios/{scenario_id}/export导出场景为 YAML 文件

策略发现 (routes/strategies.py)

方法路径说明
GET/strategies自动扫描 scheduler 包,返回所有 Strategy 子类

运行管理 (routes/runs.py)

方法路径说明
POST/runs创建运行(从场景加载默认参数)
GET/runs运行列表(分页:limit/offset)
GET/runs/{run_id}运行详情(含 summary)
GET/runs/{run_id}/status实时状态(含 current_step、latest_metrics,前端轮询用)
POST/runs/{run_id}/start启动运行(触发 ExecutionWorker)
POST/runs/{run_id}/stop停止运行
GET/runs/{run_id}/metrics聚合指标(先查 DB,再查 CSV)
GET/runs/{run_id}/traces原始 trace(分页,先查 DB,再查 CSV)
GET/runs/{run_id}/artifacts产物文件列表
GET/runs/{run_id}/artifacts/{filename}下载单个产物文件
GET/runs/{run_id}/events运行事件日志(分页)

WebSocket (ws.py)

协议路径说明
WS/ws/runs/{run_id}实时事件推送(step/schedule/metrics/sync/state/artifacts)

WebSocket 事件格式

所有 WebSocket 消息遵循统一信封格式:

json
{
  "type": "metrics",
  "run_id": "run-20260101-120000-abc12345",
  "ts_ms": 1735689600000,
  "payload": {
    "step_id": 12,
    "throughput_bps": 1234.5,
    "loss_rate": 0.1,
    "delay_p50_ms": 45.0,
    "delay_p95_ms": 900.0
  }
}

事件类型枚举:step | schedule | metrics | sync | state | artifacts

依赖注入

API 通过 deps.py 提供统一的依赖注入,所有路由函数通过 Depends() 获取:

依赖函数返回类型说明
get_settingsRuntimeSettings运行时配置
get_dbDatabase数据库引擎
get_repoRunRepositoryRun 仓库
get_run_serviceRunService运行业务服务
get_scenario_repoScenarioRepository场景仓库
get_trace_repoTraceRepositoryTrace/Metrics 仓库
get_ws_broadcasterRunEventBroadcasterWebSocket 广播器
get_location_initializerLocationInitializer位置初始化器