- 移动42个文档文件到 docs/ 目录 - 更新 .gitignore 允许 docs/ 下的 .md 文件 - 删除根目录下的重复文档文件 📁 文档分类: - StockDetailPanel 重构文档(3个) - PostHog 集成文档(6个) - 系统架构和API文档(33个) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
416 lines
6.6 KiB
Markdown
416 lines
6.6 KiB
Markdown
# API 接口文档
|
||
|
||
本文档记录了项目中所有 API 接口的详细信息。
|
||
|
||
## 目录
|
||
- [认证相关 API](#认证相关-api)
|
||
- [个人中心相关 API](#个人中心相关-api)
|
||
- [事件相关 API](#事件相关-api)
|
||
- [股票相关 API](#股票相关-api)
|
||
- [公司相关 API](#公司相关-api)
|
||
- [订阅/支付相关 API](#订阅支付相关-api)
|
||
|
||
---
|
||
|
||
## 认证相关 API
|
||
|
||
### POST /api/auth/send-verification-code
|
||
发送验证码到手机号或邮箱
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"credential": "13800138000", // 手机号或邮箱
|
||
"type": "phone", // 'phone' | 'email'
|
||
"purpose": "login" // 'login' | 'register'
|
||
}
|
||
```
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"message": "验证码已发送到 13800138000",
|
||
"dev_code": "123456" // 仅开发环境返回
|
||
}
|
||
```
|
||
|
||
**错误响应**:
|
||
```json
|
||
{
|
||
"success": false,
|
||
"error": "发送验证码失败"
|
||
}
|
||
```
|
||
|
||
**Mock 数据**: ✅ `src/mocks/handlers/auth.js` 行 21-44
|
||
|
||
**涉及文件**:
|
||
- `src/components/Auth/AuthFormContent.js` 行 164-207
|
||
|
||
---
|
||
|
||
### POST /api/auth/login-with-code
|
||
使用验证码登录(支持自动注册新用户)
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"credential": "13800138000",
|
||
"verification_code": "123456",
|
||
"login_type": "phone" // 'phone' | 'email'
|
||
}
|
||
```
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"message": "登录成功",
|
||
"isNewUser": false,
|
||
"user": {
|
||
"id": 1,
|
||
"phone": "13800138000",
|
||
"nickname": "用户昵称",
|
||
"email": null,
|
||
"avatar_url": "https://...",
|
||
"has_wechat": false
|
||
},
|
||
"token": "mock_token_1_1234567890"
|
||
}
|
||
```
|
||
|
||
**错误响应**:
|
||
```json
|
||
{
|
||
"success": false,
|
||
"error": "验证码错误"
|
||
}
|
||
```
|
||
|
||
**Mock 数据**: ✅ `src/mocks/handlers/auth.js` 行 47-115
|
||
|
||
**涉及文件**:
|
||
- `src/components/Auth/AuthFormContent.js` 行 252-327
|
||
|
||
**注意事项**:
|
||
- 后端需要支持自动注册新用户(当用户不存在时)
|
||
- 前端已添加 `.trim()` 防止空格问题
|
||
|
||
---
|
||
|
||
### GET /api/auth/session
|
||
检查当前登录状态
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"isAuthenticated": true,
|
||
"user": {
|
||
"id": 1,
|
||
"phone": "13800138000",
|
||
"nickname": "用户昵称"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Mock 数据**: ✅ `src/mocks/handlers/auth.js` 行 269-290
|
||
|
||
---
|
||
|
||
### POST /api/auth/logout
|
||
退出登录
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"message": "退出成功"
|
||
}
|
||
```
|
||
|
||
**Mock 数据**: ✅ `src/mocks/handlers/auth.js` 行 317-329
|
||
|
||
---
|
||
|
||
## 个人中心相关 API
|
||
|
||
### GET /api/account/watchlist
|
||
获取用户自选股列表
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"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
|
||
获取自选股实时行情
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"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
|
||
获取用户关注的事件列表
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"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
|
||
获取用户的事件评论
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"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
|
||
获取当前订阅信息
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"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`: 行业代码
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"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
|
||
获取事件详情
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"data": {
|
||
"id": 1,
|
||
"title": "事件标题",
|
||
"content": "事件内容",
|
||
"importance": "high",
|
||
"created_at": "2024-01-01T00:00:00Z"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Mock 数据**: ❌ 待创建
|
||
|
||
---
|
||
|
||
### GET /api/events/:id/stocks
|
||
获取事件相关股票
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"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)
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"data": [
|
||
{
|
||
"keyword": "人工智能",
|
||
"count": 123,
|
||
"trend": "up"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
**Mock 数据**: ❌ 待创建
|
||
|
||
**涉及文件**:
|
||
- `src/views/Community/index.js` 行 180
|
||
|
||
---
|
||
|
||
### GET /api/events/hot
|
||
获取热点事件
|
||
|
||
**查询参数**:
|
||
- `days`: 天数范围(默认 5)
|
||
- `limit`: 返回数量(默认 4)
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"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
|