# 个人资产策略管理系统 - 后端API文档 ## 1. 基础信息 ### 1.1 基础URL ``` https://api.demo.com ``` ### 1.2 认证方式 - **Bearer Token**:在请求头中添加 `Authorization: Bearer ` - **Token获取**:通过登录接口获取,有效期为24小时 ### 1.3 响应格式 所有API接口返回统一的JSON格式: ```typescript interface ApiResponse { code: number; // 状态码,200表示成功,其他表示错误 data: T; // 响应数据,根据接口不同返回不同结构 message: string; // 响应消息,错误时返回错误信息 } ``` ### 1.4 状态码说明 | 状态码 | 描述 | |-------|------| | 200 | 成功 | | 400 | 请求参数错误 | | 401 | 未授权 | | 403 | 禁止访问 | | 404 | 资源不存在 | | 500 | 服务器内部错误 | ## 2. API接口列表 ### 2.1 资产相关API #### 2.1.1 获取总资产数据 **接口**:`GET /api/assets` **请求参数**:无 **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | totalValue | number | 总资产估值(CNY) | | todayProfit | number | 今日盈亏(CNY) | | totalReturnRate | number | 累计收益率(%) | #### 2.1.2 获取持仓组合数据 **接口**:`GET /api/holdings` **请求参数**:无 **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | id | string | 持仓组合ID | | name | string | 持仓组合名称 | | tags | string | 持仓组合标签 | | status | string | 状态(监控中/等待信号) | | statusType | string | 状态类型(green/gray) | | iconChar | string | 图标字符 | | iconBgClass | string | 图标背景样式类 | | iconTextClass | string | 图标文本样式类 | | value | number | 当前市值(CNY) | | returnRate | number | 累计收益率(%) | | returnType | string | 收益类型(positive/negative) | ### 2.2 策略相关API #### 2.2.1 获取策略列表 **接口**:`GET /api/strategies` **请求参数**:无 **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | id | string | 策略ID | | iconChar | string | 图标字符 | | title | string | 策略标题 | | tag | string | 策略标签 | | desc | string | 策略描述 | | bgClass | string | 背景样式类 | | tagClass | string | 标签样式类 | | tags | array | 策略标签数组 | | btnText | string | 按钮文本 | | btnClass | string | 按钮样式类 | #### 2.2.2 获取单个策略详情 **接口**:`GET /api/strategies/{id}` **请求参数**: | 参数名 | 类型 | 位置 | 描述 | |-------|------|------|------| | id | string | 路径参数 | 策略ID | **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | id | string | 策略ID | | iconChar | string | 图标字符 | | title | string | 策略标题 | | tag | string | 策略标签 | | desc | string | 策略描述 | | bgClass | string | 背景样式类 | | tagClass | string | 标签样式类 | | tags | array | 策略标签数组 | | parameters | object | 策略参数配置 | | backtest | object | 回测数据 | #### 2.2.3 创建新策略 **接口**:`POST /api/strategies` **请求参数**: | 字段名 | 类型 | 描述 | 必填 | |-------|------|------|------| | title | string | 策略标题 | 是 | | tag | string | 策略标签 | 是 | | desc | string | 策略描述 | 是 | | tags | array | 策略标签数组 | 是 | | parameters | object | 策略参数配置 | 是 | | iconChar | string | 图标字符 | 否 | | bgClass | string | 背景样式类 | 否 | | tagClass | string | 标签样式类 | 否 | **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | id | string | 新创建的策略ID | | title | string | 策略标题 | | status | string | 创建状态 | #### 2.2.4 更新策略 **接口**:`PUT /api/strategies/{id}` **请求参数**: | 参数名 | 类型 | 位置 | 描述 | |-------|------|------|------| | id | string | 路径参数 | 策略ID | **请求体**: | 字段名 | 类型 | 描述 | 必填 | |-------|------|------|------| | title | string | 策略标题 | 否 | | tag | string | 策略标签 | 否 | | desc | string | 策略描述 | 否 | | tags | array | 策略标签数组 | 否 | | parameters | object | 策略参数配置 | 否 | **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | id | string | 策略ID | | status | string | 更新状态 | #### 2.2.5 删除策略 **接口**:`DELETE /api/strategies/{id}` **请求参数**: | 参数名 | 类型 | 位置 | 描述 | |-------|------|------|------| | id | string | 路径参数 | 策略ID | **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | id | string | 策略ID | | status | string | 删除状态 | ### 2.3 用户相关API #### 2.3.1 获取用户信息 **接口**:`GET /api/user/info` **请求参数**:无 **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | userName | string | 用户名 | | memberLevel | string | 会员等级 | | runningDays | number | 连续运行天数 | | avatar | string | 头像URL | | email | string | 邮箱 | #### 2.3.2 获取用户统计数据 **接口**:`GET /api/user/stats` **请求参数**:无 **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | signalsCaptured | number | 已捕获信号数量 | | winRate | number | 模拟胜率(%) | | totalTrades | number | 总交易次数 | | averageProfit | number | 平均收益(%) | #### 2.3.3 更新用户信息 **接口**:`PUT /api/user/info` **请求参数**: | 字段名 | 类型 | 描述 | 必填 | |-------|------|------|------| | userName | string | 用户名 | 否 | | avatar | string | 头像URL | 否 | | email | string | 邮箱 | 否 | **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | status | string | 更新状态 | | userName | string | 更新后的用户名 | ### 2.4 应用相关API #### 2.4.1 获取应用信息 **接口**:`GET /api/app/info` **请求参数**:无 **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | version | string | 应用版本 | | currentDate | string | 当前日期(YYYY-MM-DD) | | latestVersion | string | 最新版本 | | updateAvailable | boolean | 是否有更新 | ### 2.5 认证相关API #### 2.5.1 用户登录 **接口**:`POST /api/auth/login` **请求参数**: | 字段名 | 类型 | 描述 | 必填 | |-------|------|------|------| | email | string | 邮箱 | 是 | | password | string | 密码 | 是 | **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | token | string | 认证令牌 | | expireAt | string | 令牌过期时间 | | user | object | 用户基本信息 | #### 2.5.2 用户注册 **接口**:`POST /api/auth/register` **请求参数**: | 字段名 | 类型 | 描述 | 必填 | |-------|------|------|------| | email | string | 邮箱 | 是 | | password | string | 密码 | 是 | | userName | string | 用户名 | 是 | **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | id | string | 用户ID | | status | string | 注册状态 | #### 2.5.3 微信静默登录 **接口**:`POST /api/auth/wechat/login` **请求参数**: | 字段名 | 类型 | 描述 | 必填 | |-------|------|------|------| | code | string | 微信登录凭证code | 是 | | encryptedData | string | 加密数据(可选,需要用户信息时提供) | 否 | | iv | string | 加密算法的初始向量(可选,需要用户信息时提供) | 否 | **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | token | string | 认证令牌 | | expireAt | string | 令牌过期时间 | | user | object | 用户基本信息 | | isNewUser | boolean | 是否为新用户 | #### 2.5.4 微信绑定邮箱 **接口**:`POST /api/auth/wechat/bind` **请求参数**: | 字段名 | 类型 | 描述 | 必填 | |-------|------|------|------| | email | string | 邮箱 | 是 | | code | string | 微信登录凭证code | 是 | **响应参数**: | 字段名 | 类型 | 描述 | |-------|------|------| | status | string | 绑定状态 | | userId | string | 用户ID | ## 4. 环境变量配置 | 环境变量 | 描述 | 默认值 | |---------|------|--------| | PORT | 服务端口 | 3000 | | DATABASE_URL | 数据库连接URL | - | | JWT_SECRET | JWT密钥 | - | | JWT_EXPIRES_IN | JWT过期时间 | 24h | | CORS_ORIGIN | CORS允许的源 | * |