Files
vf_react/API_ENDPOINTS.md
zdl 36558e0715 feat: 1. 基础设施(2个文件)
-  src/utils/logger.js - 统一日志工具
    - API 请求/响应/错误日志
    - 组件错误/警告/调试日志
    - 开发环境详细分组,生产环境仅错误
  -  src/utils/axiosConfig.js - axios 全局拦截器
    - 自动记录所有请求/响应
    - 统一 baseURL 和 credentials 配置\
2. 核心文件重构(8个文件)\
 AuthFormContent.js |  保留登录/注册成功 toast 移除验证码发送 toast 添加 .trim() 所有 API 添加 logger |  完成 |
  | Center.js          |  移除所有 toast 移除 toast 依赖 添加错误 logger                         |  完成 |
  | Community/index.js |  移除所有 toast 和导入 移除 toast 依赖 添加错误 logger                     |  完成 |
  | authService.js     |  统一 apiRequest 函数 所有请求自动记录 移除 console.error                 |  完成 |
  | eventService.js    |  重构 apiRequest 所有方法添加 logger 移除 console.log/error           |  完成 |
  | stockService       |  所有方法添加 logger 移除 console 输出                                 |  完成 |
  | indexService       |  添加 logger 移除 console 输出                                     |  完成 |
  | AuthContext.js     |  保留注册/登出成功 toast 移除验证码发送 toast 所有方法添加 logger                |  完成 |\
3. Mock 数据完善(\
 Mock 数据完善(1个文件)

  -  src/mocks/handlers/account.js - 个人中心 Mock
    -  自选股列表 (GET /api/account/watchlist)
    -  实时行情 (GET /api/account/watchlist/realtime)
    -  添加自选股 (POST /api/account/watchlist/add)
    -  删除自选股 (DELETE /api/account/watchlist/:id)
    -  关注的事件 (GET /api/account/events/following)
    -  事件评论 (GET /api/account/events/comments)
    -  当前订阅 (GET /api/subscription/current)\
4. API 文档(1个文件)

  -  API_ENDPOINTS.md - 完整 API 接口文档
    - 认证相关: 4个接口
    - 个人中心: 12个接口
    - 事件相关: 12个接口
    - 总计: 28+个接口\
5。Toast 策略执行:
  -  保留: 3种(登录成功、注册成功、登出成功)
  -  移除: 15+处(验证码、数据加载等)

  Logger 替换:
  -  console.log → logger.debug/logger.info
  -  console.error → logger.error\- console.warn → logger.warn

  Mock 数据:
  已有: auth.js, event.js, users.js, events.js
  新增: account.js(7个新接口)
6.用户体验改进
  静默优化:不再弹出验证码发送成功提示(静默处理)不再弹出数据加载失败提示(console 记录) 仅在关键操作显示 toast(登录/注册/登出)

  开发体验: Console 中有清晰的分组日志(🌐 🔴 ⚠️ 等图标), 所有 API 请求/响应自动记录,错误日志包含完整上下文和堆栈,Mock 服务完善
 测试场景: 登录/注册 - 仅显示成功 toast,验证码静默发送 个人中心 - 加载自选股、实时行情、关注事件 社区页面 - 加载事件列表、Console 查看
9. 添加日志:API Request /  API Response /  API Error
2025-10-18 07:48:00 +08:00

6.6 KiB
Raw Permalink Blame History

API 接口文档

本文档记录了项目中所有 API 接口的详细信息。

目录


认证相关 API

POST /api/auth/send-verification-code

发送验证码到手机号或邮箱

请求参数:

{
  "credential": "13800138000",  // 手机号或邮箱
  "type": "phone",              // 'phone' | 'email'
  "purpose": "login"            // 'login' | 'register'
}

响应示例:

{
  "success": true,
  "message": "验证码已发送到 13800138000",
  "dev_code": "123456"  // 仅开发环境返回
}

错误响应:

{
  "success": false,
  "error": "发送验证码失败"
}

Mock 数据: src/mocks/handlers/auth.js 行 21-44

涉及文件:

  • src/components/Auth/AuthFormContent.js 行 164-207

POST /api/auth/login-with-code

使用验证码登录(支持自动注册新用户)

请求参数:

{
  "credential": "13800138000",
  "verification_code": "123456",
  "login_type": "phone"  // 'phone' | 'email'
}

响应示例:

{
  "success": true,
  "message": "登录成功",
  "isNewUser": false,
  "user": {
    "id": 1,
    "phone": "13800138000",
    "nickname": "用户昵称",
    "email": null,
    "avatar_url": "https://...",
    "has_wechat": false
  },
  "token": "mock_token_1_1234567890"
}

错误响应:

{
  "success": false,
  "error": "验证码错误"
}

Mock 数据: src/mocks/handlers/auth.js 行 47-115

涉及文件:

  • src/components/Auth/AuthFormContent.js 行 252-327

注意事项:

  • 后端需要支持自动注册新用户(当用户不存在时)
  • 前端已添加 .trim() 防止空格问题

GET /api/auth/session

检查当前登录状态

响应示例:

{
  "success": true,
  "isAuthenticated": true,
  "user": {
    "id": 1,
    "phone": "13800138000",
    "nickname": "用户昵称"
  }
}

Mock 数据: src/mocks/handlers/auth.js 行 269-290


POST /api/auth/logout

退出登录

响应示例:

{
  "success": true,
  "message": "退出成功"
}

Mock 数据: src/mocks/handlers/auth.js 行 317-329


个人中心相关 API

GET /api/account/watchlist

获取用户自选股列表

响应示例:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "stock_code": "000001.SZ",
      "stock_name": "平安银行",
      "added_at": "2024-01-01T00:00:00Z"
    }
  ]
}

Mock 数据: 待创建 src/mocks/handlers/account.js

涉及文件:

  • src/views/Dashboard/Center.js 行 94

GET /api/account/watchlist/realtime

获取自选股实时行情

响应示例:

{
  "success": true,
  "data": {
    "000001.SZ": {
      "price": 12.34,
      "change": 0.56,
      "change_percent": 4.76,
      "volume": 123456789
    }
  }
}

Mock 数据: 待创建

涉及文件:

  • src/views/Dashboard/Center.js 行 133

GET /api/account/events/following

获取用户关注的事件列表

响应示例:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "title": "事件标题",
      "followed_at": "2024-01-01T00:00:00Z"
    }
  ]
}

Mock 数据: 待创建

涉及文件:

  • src/views/Dashboard/Center.js 行 95

GET /api/account/events/comments

获取用户的事件评论

响应示例:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "event_id": 123,
      "content": "评论内容",
      "created_at": "2024-01-01T00:00:00Z"
    }
  ]
}

Mock 数据: 待创建

涉及文件:

  • src/views/Dashboard/Center.js 行 96

GET /api/subscription/current

获取当前订阅信息

响应示例:

{
  "success": true,
  "data": {
    "plan": "premium",
    "expires_at": "2025-01-01T00:00:00Z",
    "auto_renew": true
  }
}

Mock 数据: 待创建 src/mocks/handlers/subscription.js

涉及文件:

  • src/views/Dashboard/Center.js 行 97

事件相关 API

GET /api/events

获取事件列表

查询参数:

  • page: 页码(默认 1
  • per_page: 每页数量(默认 10
  • sort: 排序方式 ('new' | 'hot' | 'returns')
  • importance: 重要性筛选 ('all' | 'high' | 'medium' | 'low')
  • date_range: 日期范围
  • q: 搜索关键词
  • industry_classification: 行业分类
  • industry_code: 行业代码

响应示例:

{
  "success": true,
  "data": {
    "events": [
      {
        "id": 1,
        "title": "事件标题",
        "importance": "high",
        "created_at": "2024-01-01T00:00:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "per_page": 10,
      "total": 100
    }
  }
}

Mock 数据: ⚠️ 部分实现(需完善)

涉及文件:

  • src/views/Community/index.js 行 148

GET /api/events/:id

获取事件详情

响应示例:

{
  "success": true,
  "data": {
    "id": 1,
    "title": "事件标题",
    "content": "事件内容",
    "importance": "high",
    "created_at": "2024-01-01T00:00:00Z"
  }
}

Mock 数据: 待创建


GET /api/events/:id/stocks

获取事件相关股票

响应示例:

{
  "success": true,
  "data": [
    {
      "stock_code": "000001.SZ",
      "stock_name": "平安银行",
      "correlation": 0.85
    }
  ]
}

Mock 数据: src/mocks/handlers/event.js 行 12-38


GET /api/events/popular-keywords

获取热门关键词

查询参数:

  • limit: 返回数量(默认 20

响应示例:

{
  "success": true,
  "data": [
    {
      "keyword": "人工智能",
      "count": 123,
      "trend": "up"
    }
  ]
}

Mock 数据: 待创建

涉及文件:

  • src/views/Community/index.js 行 180

GET /api/events/hot

获取热点事件

查询参数:

  • days: 天数范围(默认 5
  • limit: 返回数量(默认 4

响应示例:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "title": "热点事件标题",
      "heat_score": 95.5
    }
  ]
}

Mock 数据: 待创建

涉及文件:

  • src/views/Community/index.js 行 192

待补充 API

以下 API 将在重构其他文件时逐步添加:

  • 股票相关 API
  • 公司相关 API
  • 订阅/支付相关 API
  • 用户资料相关 API
  • 行业分类相关 API

更新日志

  • 2024-XX-XX: 创建文档,记录认证和个人中心相关 API