# AmazingData 数据服务平台 基于 AmazingData SDK 的企业级数据服务平台,提供股票、期货 K 线数据获取和实时订阅服务。 ## 功能特性 ### 1. 单只品种查询 - 输入:品种代码(股票/期货)、交易日、周期、保存路径 - 输出:JSON 格式数据保存到指定目录 ### 2. 批量股票获取 - 输入:股票代码列表、交易日列表、保存路径 - 输出:以每个交易日为文件名的 JSON 数据 ### 3. 批量期货获取 - 输入:期货品种代码、交易日列表、保存路径 - 输出:以每个交易日为文件名的 JSON 数据 ### 4. 实时订阅(股票) - 输入:股票代码、订阅周期、保存路径 - 输出:按时间命名的实时数据文件 ### 5. 实时订阅(期货) - 输入:期货代码、订阅周期、保存路径 - 输出:按时间命名的实时数据文件 ### 6. 批量品种订阅 - 支持同时订阅多个品种 - 支持多周期订阅 ## 技术栈 - **后端**: FastAPI + SQLAlchemy + MySQL - **前端**: Vue 3 + Vite + Element Plus - **数据源**: AmazingData SDK - **部署**: Docker + Docker Compose ## 快速开始 ### 环境要求 - Python 3.11+ - Node.js 18+ - MySQL 8.0+ - AmazingData SDK ### 本地开发 #### 1. 后端 \\\ash cd amazingdata_platform # 创建虚拟环境 python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # 安装依赖 pip install -r backend/requirements.txt # 配置环境变量 cp .env.example .env # 编辑 .env 文件 # 启动服务 uvicorn backend.main:app --reload --port 8000 \\\ #### 2. 前端 \\\ash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev \\\ ### Docker 部署 \\\ash # 构建并启动 docker-compose up -d # 查看日志 docker-compose logs -f # 停止 docker-compose down \\\ ## 项目结构 \\\ amazingdata_platform/ ├── backend/ # 后端服务 │ ├── api/ # API 路由 │ │ ├── auth.py # 认证接口 │ │ ├── historical.py # 历史数据接口 │ │ ├── realtime.py # 实时订阅接口 │ │ ├── batch.py # 批量操作接口 │ │ ├── cache.py # 缓存管理接口 │ │ └── settings.py # 系统配置接口 │ ├── auth/ # 认证模块 │ ├── models/ # 数据模型 │ ├── services/ # 业务逻辑 │ ├── config.py # 配置 │ └── main.py # 主应用 ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── api/ # API 请求 │ │ ├── router/ # 路由 │ │ ├── stores/ # 状态管理 │ │ └── views/ # 页面组件 │ └── package.json ├── database/ # 数据库 │ └── init.sql # 初始化脚本 ├── docker-compose.yml # Docker 配置 ├── Dockerfile.backend # 后端 Dockerfile ├── Dockerfile.frontend # 前端 Dockerfile └── nginx.conf # Nginx 配置 \\\ ## API 文档 启动服务后访问 \http://localhost:8000/docs\ 查看 Swagger API 文档。 ### 主要接口 | 接口 | 方法 | 描述 | |------|------|------| | \/api/v1/auth/login\ | POST | 用户登录 | | \/api/v1/historical/single\ | POST | 获取单只品种数据 | | \/api/v1/historical/batch-stocks\ | POST | 批量获取股票数据 | | \/api/v1/historical/batch-futures\ | POST | 批量获取期货数据 | | \/api/v1/realtime/subscribe\ | POST | 创建实时订阅 | | \/api/v1/realtime/tasks\ | GET | 获取订阅任务列表 | | \/api/v1/realtime/stop/{id}\ | POST | 停止订阅任务 | | \/api/v1/batch/execute\ | POST | 执行批量任务 | | \/api/v1/batch/tasks\ | GET | 获取批量任务列表 | | \/api/v1/cache/list\ | GET | 获取缓存文件列表 | | \/api/v1/cache/stats\ | GET | 获取缓存统计 | | \/api/v1/settings/amazing-data/config\ | GET | 获取 AmazingData 配置 | | \/api/v1/settings/test-connection\ | POST | 测试连接 | ## 使用示例 ### 获取单只股票数据 \\\ash curl -X POST http://localhost:8000/api/v1/historical/single \ -H \ Content-Type: application/json\ \ -d '{ \code\: \000001.SZ\, \trading_day\: \20260407\, \period\: \day\, \save_path\: \./data/single\ }' \\\ ### 创建实时订阅 \\\ash curl -X POST http://localhost:8000/api/v1/realtime/subscribe \ -H \Content-Type: application/json\ \ -d '{ \codes\: [\ag2605.SHF\], \periods\: [\min1\, \min5\], \save_path\: \./data/realtime\, \duration\: 3600 }' \\\ ## 默认账号 - 管理员: admin / admin123 - 普通用户: user / user123 ## 许可证 MIT License