Skip to content

v1.10.0 — Web API 层(FastAPI REST + WebSocket)

Choose a tag to compare

@handsomejustin handsomejustin released this 11 Jun 19:37
· 55 commits to main since this release

🌐 easy-tdx v1.10.0 — Web API 层

将 easy-tdx 一键暴露为 REST + WebSocket HTTP API,支持跨语言、跨平台、远程调用。

✨ 新功能

  • FastAPI REST API — 全部 AsyncTdxClient 方法暴露为 REST 端点
    • /api/v1/security/* — 证券列表、实时报价、市场统计
    • /api/v1/bars/* — K线、指数K线、分时、逐笔成交
    • /api/v1/xdxr, /api/v1/finance/* — 除权除息、财务、公司信息
    • /api/v1/block — 板块信息
    • /api/v1/chanlun/analyze — 缠论分析(POST)
  • WebSocket 实时行情/ws/realtime/{symbol},支持多标的动态订阅
  • CLI easy-tdx serve — 一行命令启动 Web 服务器
  • 自动 API 文档 — Swagger UI (/docs) + ReDoc (/redoc)
  • 可选依赖pip install easy-tdx[web],核心安装不受影响

🚀 快速开始

pip install easy-tdx[web]
easy-tdx serve
# 浏览器打开 http://127.0.0.1:8000/docs 查看完整 API 文档

🐛 Bug 修复

  • 修复 deps.py 运行时 NameError(500 → 正常启动)
  • 修复 market/category 参数不支持小写和非法值(500 → 400 Bad Request)

📊 测试覆盖

  • 20 个离线单元测试(无需网络)
  • 409 全量单元测试通过,无回归
  • mypy strict 零错误
  • ruff check + format 全通过

📁 新增文件(14 个)

src/easy_tdx/web/
├── __init__.py          # 公共 API
├── app.py               # FastAPI app factory + lifespan
├── deps.py              # 依赖注入
├── schemas.py           # Pydantic 模型
├── convert.py           # 参数转换(大小写 + 验证)
├── errors.py            # 异常处理
└── routers/
    ├── market.py        # 行情路由
    ├── bars.py          # K线路由
    ├── finance.py       # 财务路由
    ├── block.py         # 板块路由
    ├── chanlun.py        # 缠论路由
    └── realtime.py      # WebSocket 路由