- ✅ 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
6.6 KiB
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