Spaces:
Build error
Build error
| # 股票分析系统 API 接口架构设计 | |
| ## 概述 | |
| 本文档定义了股票分析系统的RESTful API接口架构,提供外部系统调用股票分析功能的标准化接口。 | |
| ## API版本控制 | |
| - **当前版本**: v1 | |
| - **基础URL**: `/api/v1` | |
| - **版本控制方式**: URL路径版本控制 | |
| ## 认证机制 | |
| ### 1. API密钥认证 | |
| ```http | |
| X-API-Key: your_api_key_here | |
| ``` | |
| ### 2. HMAC签名认证(高安全级别) | |
| ```http | |
| X-API-Key: your_api_key_here | |
| X-HMAC-Signature: hmac_signature | |
| X-Timestamp: unix_timestamp | |
| ``` | |
| ## 核心API端点 | |
| ### 1. 投资组合分析API | |
| **端点**: `POST /api/v1/portfolio/analyze` | |
| **请求格式**: | |
| ```json | |
| { | |
| "stocks": [ | |
| { | |
| "stock_code": "000001.SZ", | |
| "weight": 0.3, | |
| "market_type": "A" | |
| }, | |
| { | |
| "stock_code": "600000.SH", | |
| "weight": 0.7, | |
| "market_type": "A" | |
| } | |
| ], | |
| "analysis_params": { | |
| "risk_preference": "moderate", | |
| "time_horizon": "medium" | |
| } | |
| } | |
| ``` | |
| **响应格式**: | |
| ```json | |
| { | |
| "success": true, | |
| "data": { | |
| "portfolio_score": 75.5, | |
| "risk_level": "medium", | |
| "risk_analysis": { | |
| "volatility_risk": 65.2, | |
| "concentration_risk": 45.8, | |
| "correlation_risk": 55.3 | |
| }, | |
| "recommendations": [ | |
| "建议适当分散投资", | |
| "关注市场波动风险" | |
| ], | |
| "individual_stocks": [ | |
| { | |
| "stock_code": "000001.SZ", | |
| "score": 78.2, | |
| "weight": 0.3, | |
| "contribution": 23.46 | |
| } | |
| ] | |
| }, | |
| "meta": { | |
| "analysis_time": "2025-01-03T10:30:00Z", | |
| "cache_hit": true, | |
| "processing_time_ms": 1250 | |
| } | |
| } | |
| ``` | |
| ### 2. 个股分析API | |
| **端点**: `POST /api/v1/stock/analyze` | |
| **请求格式**: | |
| ```json | |
| { | |
| "stock_code": "000001.SZ", | |
| "market_type": "A", | |
| "analysis_depth": "full", | |
| "include_ai_analysis": true, | |
| "time_range": 60 | |
| } | |
| ``` | |
| **响应格式**: | |
| ```json | |
| { | |
| "success": true, | |
| "data": { | |
| "stock_info": { | |
| "stock_code": "000001.SZ", | |
| "stock_name": "平安银行", | |
| "industry": "银行", | |
| "market_type": "A" | |
| }, | |
| "analysis_result": { | |
| "overall_score": 78.5, | |
| "technical_score": 75.2, | |
| "fundamental_score": 82.1, | |
| "capital_flow_score": 77.8 | |
| }, | |
| "technical_analysis": { | |
| "trend": "上升", | |
| "support_levels": [12.50, 12.20], | |
| "resistance_levels": [13.80, 14.20], | |
| "indicators": { | |
| "rsi": 65.2, | |
| "macd_signal": "买入", | |
| "ma_trend": "多头排列" | |
| } | |
| }, | |
| "fundamental_analysis": { | |
| "pe_ratio": 5.8, | |
| "pb_ratio": 0.65, | |
| "roe": 12.5, | |
| "debt_ratio": 45.2 | |
| }, | |
| "risk_assessment": { | |
| "risk_level": "中等", | |
| "volatility": 25.3, | |
| "beta": 1.15 | |
| }, | |
| "ai_analysis": { | |
| "summary": "该股票基本面良好...", | |
| "recommendation": "建议持有", | |
| "confidence": 0.85 | |
| } | |
| }, | |
| "meta": { | |
| "analysis_time": "2025-01-03T10:30:00Z", | |
| "data_freshness": "实时", | |
| "processing_time_ms": 2150 | |
| } | |
| } | |
| ``` | |
| ### 3. 批量股票评分API | |
| **端点**: `POST /api/v1/stocks/batch-score` | |
| **请求格式**: | |
| ```json | |
| { | |
| "stock_codes": ["000001.SZ", "600000.SH", "000002.SZ"], | |
| "market_type": "A", | |
| "min_score": 60, | |
| "sort_by": "score", | |
| "sort_order": "desc" | |
| } | |
| ``` | |
| **响应格式**: | |
| ```json | |
| { | |
| "success": true, | |
| "data": { | |
| "total_analyzed": 3, | |
| "qualified_count": 2, | |
| "results": [ | |
| { | |
| "stock_code": "000001.SZ", | |
| "stock_name": "平安银行", | |
| "score": 78.5, | |
| "risk_level": "中等", | |
| "recommendation": "买入" | |
| }, | |
| { | |
| "stock_code": "600000.SH", | |
| "stock_name": "浦发银行", | |
| "score": 72.3, | |
| "risk_level": "中等", | |
| "recommendation": "持有" | |
| } | |
| ] | |
| }, | |
| "meta": { | |
| "analysis_time": "2025-01-03T10:30:00Z", | |
| "processing_time_ms": 5250, | |
| "cache_hit_rate": 0.67 | |
| } | |
| } | |
| ``` | |
| ### 4. 异步任务API | |
| **创建任务**: `POST /api/v1/tasks` | |
| ```json | |
| { | |
| "task_type": "portfolio_analysis", | |
| "params": { | |
| "stocks": [...], | |
| "analysis_depth": "full" | |
| } | |
| } | |
| ``` | |
| **查询任务状态**: `GET /api/v1/tasks/{task_id}` | |
| ```json | |
| { | |
| "success": true, | |
| "data": { | |
| "task_id": "uuid-string", | |
| "status": "running", | |
| "progress": 65, | |
| "estimated_completion": "2025-01-03T10:35:00Z", | |
| "created_at": "2025-01-03T10:30:00Z" | |
| } | |
| } | |
| ``` | |
| **获取任务结果**: `GET /api/v1/tasks/{task_id}/result` | |
| ## 错误处理 | |
| ### 标准错误响应格式 | |
| ```json | |
| { | |
| "success": false, | |
| "error": { | |
| "code": "INVALID_STOCK_CODE", | |
| "message": "提供的股票代码无效", | |
| "details": { | |
| "invalid_codes": ["INVALID001"], | |
| "suggestion": "请检查股票代码格式" | |
| } | |
| }, | |
| "meta": { | |
| "request_id": "req_123456789", | |
| "timestamp": "2025-01-03T10:30:00Z" | |
| } | |
| } | |
| ``` | |
| ### HTTP状态码规范 | |
| - `200 OK`: 请求成功 | |
| - `201 Created`: 任务创建成功 | |
| - `400 Bad Request`: 请求参数错误 | |
| - `401 Unauthorized`: 认证失败 | |
| - `403 Forbidden`: 权限不足 | |
| - `404 Not Found`: 资源不存在 | |
| - `429 Too Many Requests`: 请求频率超限 | |
| - `500 Internal Server Error`: 服务器内部错误 | |
| ## 限流策略 | |
| ### 基础限流 | |
| - **免费用户**: 100次/小时 | |
| - **付费用户**: 1000次/小时 | |
| - **企业用户**: 10000次/小时 | |
| ### 端点特定限流 | |
| - 个股分析: 50次/小时 | |
| - 投资组合分析: 20次/小时 | |
| - 批量评分: 10次/小时 | |
| ## 缓存策略 | |
| ### 数据缓存TTL | |
| - **实时数据**: 5分钟 | |
| - **技术指标**: 15分钟 | |
| - **基本面数据**: 1天 | |
| - **历史数据**: 7天 | |
| ### 缓存键策略 | |
| - 个股分析: `stock_analysis:{stock_code}:{market_type}:{date}` | |
| - 组合分析: `portfolio_analysis:{hash(stocks)}:{params_hash}` | |
| ## 集成现有系统 | |
| ### 1. 任务管理器集成 | |
| - 复用 `unified_task_manager` | |
| - 支持异步任务处理 | |
| - 任务状态实时更新 | |
| ### 2. 分析引擎集成 | |
| - `StockAnalyzer`: 核心分析功能 | |
| - `RiskMonitor`: 风险评估 | |
| - `FundamentalAnalyzer`: 基本面分析 | |
| ### 3. 缓存系统集成 | |
| - MySQL缓存: 长期数据存储 | |
| - Redis缓存: 实时数据缓存 | |
| - 智能缓存策略 | |
| ## 安全考虑 | |
| ### 1. 输入验证 | |
| - 股票代码格式验证 | |
| - 参数范围检查 | |
| - SQL注入防护 | |
| ### 2. 输出过滤 | |
| - 敏感信息过滤 | |
| - 数据脱敏处理 | |
| ### 3. 访问控制 | |
| - API密钥管理 | |
| - 用户权限分级 | |
| - IP白名单支持 | |
| ## 监控和日志 | |
| ### 1. 性能监控 | |
| - 响应时间监控 | |
| - 错误率统计 | |
| - 缓存命中率 | |
| ### 2. 业务监控 | |
| - API调用统计 | |
| - 用户行为分析 | |
| - 系统负载监控 | |
| ### 3. 日志记录 | |
| - 请求日志 | |
| - 错误日志 | |
| - 性能日志 | |