🇨🇳 简体中文
🇺🇸 English
🇯🇵 日本語
Skip to the content.

DataSync API

模块: data-sync

本模块包含 DataSyncService 相关的 API 端点,用于管理实时数据同步服务。

概述

DataSyncService 是一个常驻服务,负责:

端点列表


详细说明

🔍 Get Data Sync Status

获取 DataSyncService 当前状态

请求方式: GET /api/v1/data-sync/status

响应:

{
  "sync_state": "ready",
  "subscribed_symbols": ["AAPL.US", "TSLA.US"],
  "lookback_days": 30,
  "last_sync_time": "2025-09-16T12:00:00",
  "subscription_counts": {
    "AAPL.US": 2,
    "TSLA.US": 1
  }
}

响应字段:

字段 类型 说明
sync_state string 同步状态: stopped/initializing/syncing/ready
subscribed_symbols array 已订阅的股票代码列表
lookback_days integer 历史数据回看天数
last_sync_time string 最后同步时间 (ISO格式)
subscription_counts object 各标的订阅计数

➕ Start Data Sync Service

启动 DataSyncService

请求方式: POST /api/v1/data-sync/start

认证: 需要登录

响应:

{
  "success": true,
  "message": "DataSyncService 启动成功",
  "sync_state": "ready"
}

说明:


🛑 Stop Data Sync Service

停止 DataSyncService

请求方式: POST /api/v1/data-sync/stop

响应:

{
  "success": true,
  "message": "DataSyncService 已停止"
}

➕ Start Symbol Sync

启动指定标的的数据同步

请求方式: POST /api/v1/data-sync/{symbol}/start

路径参数:

请求体:

{
  "symbols": ["AAPL.US"],
  "session_id": "session-123"
}

请求体参数:

字段 类型 必填 说明
symbols array 要订阅的股票代码列表
session_id string 会话 ID (用于引用计数)

认证: 需要登录

响应:

{
  "success": true,
  "message": "已订阅 AAPL.US",
  "sync_state": "ready"
}

说明:


🛑 Stop Symbol Sync

停止指定标的的数据同步

请求方式: POST /api/v1/data-sync/{symbol}/stop

路径参数:

请求体:

{
  "session_id": "session-123"
}

响应:

{
  "success": true,
  "message": "已取消订阅 AAPL.US,剩余 1 个订阅"
}

说明:


⚙️ Update Lookback Days

更新历史数据回看天数配置

请求方式: PUT /api/v1/data-sync/config/lookback-days

查询参数:

认证: 需要登录

响应:

{
  "success": true,
  "message": "回看天数已更新为 30 天",
  "lookback_days": 30
}

错误响应:


📡 WebSocket Data Sync Logs

DataSyncService 实时日志 WebSocket 端点

连接方式: WebSocket /api/v1/data-sync/logs?symbol=AAPL.US

查询参数:

消息格式:

{
  "type": "log",
  "message": "检查最近 30 天数据完整性...",
  "timestamp": "2025-09-16T12:00:00.000Z",
  "sequence": 1
}

消息类型:

type 说明
log 一般日志
status 状态变更
error 错误信息
success 成功消息

说明:


状态机

DataSyncService 的状态转换:

stateDiagram-v2
    [*] --> stopped
    stopped --> initializing: start()
    initializing --> ready: 初始化完成
    initializing --> stopped: 初始化失败
    ready --> syncing: 轮询补漏
    syncing --> ready: 同步完成
    ready --> stopped: stop()
状态 说明
stopped 服务已停止
initializing 初始化中(结算日历、补全数据)
syncing 同步中(实时订阅、定时轮询)
ready 就绪(可接收数据请求)

使用示例

启动同步并订阅标的

# 1. 订阅标的(会自动启动服务)
curl -X POST "http://localhost:8000/api/v1/data-sync/AAPL.US/start" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"session_id": "my-session-1"}'

# 2. 查看状态
curl "http://localhost:8000/api/v1/data-sync/status"

# 3. 取消订阅
curl -X POST "http://localhost:8000/api/v1/data-sync/AAPL.US/stop" \
  -H "Content-Type: application/json" \
  -d '{"session_id": "my-session-1"}'

WebSocket 日志监听

const ws = new WebSocket('ws://localhost:8000/api/v1/data-sync/logs?symbol=AAPL.US');

ws.onmessage = (event) => {
  const log = JSON.parse(event.data);
  console.log(`[${log.type}] ${log.message}`);
};