Files
vscode-workbench/.trae/documents/api-favorite-status-check.md
T

103 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 接口大全收藏功能检测报告
## 检测目标
检测"接口大全"(API Directory)是否已实现收藏(收藏/收藏)功能
---
## 当前实现状态
### ✅ 已实现
1. **后端模型** — `apidirectory/models.py`
- `ApiFavorite` 模型已定义,关联用户和 API 接口
2. **后端 API 端点**
- `toggleFavorite` 切换收藏接口已实现
- 返回 `is_favorited` 状态和 `favorites_count` 数量
3. **详情页收藏功能** — `ApiDetail.tsx` (✅ 完整实现)
- 收藏按钮位于 Hero 区域操作区
- 支持空心/实心图标切换 (`StarOutlined` / `StarFilled`)
- 显示收藏数量
- 未登录时弹出登录框
- 调用 `api_request.apidirectory.toggleFavorite(apiData.id)`
4. **列表数据支持**
- `ApiItem` 接口包含 `favorites_count` 和 `is_favorited` 字段
- 支持按"最多收藏"排序
---
### ❌ 未实现(功能缺口)
#### 缺口 1:API 接口大全列表页无收藏按钮
**影响文件:**
- `ApiDirectory.tsx` — 主列表页(卡片/列表视图)
- `ApiDirectoryDesktop.tsx` — 桌面版列表页
**现状:**
- 仅显示收藏数量(静态文字 `<StarOutlined /> {api.favorites_count}`)
- 无点击交互,无法直接收藏/取消收藏
#### 缺口 2:收藏夹页面不显示 API 收藏
**影响文件:**
- `Favorites.tsx`
- 后端 `user/views/favorites.py` → `MyFavoritesView`
**现状:**
- 只支持 `tool`、`article`、`course` 三种收藏类型
- `FavoriteItem` 接口不包含 `api` 类型
- 标签页无 API 分类
---
## 修复方案
### 方案 A:最小改动(仅添加列表页收藏按钮)
**文件修改清单:**
| 文件 | 修改内容 |
|------|----------|
| `ApiDirectory.tsx` | 添加 `handleFavoriteToggle` 函数,收藏按钮绑定点击事件 |
| `ApiDirectoryDesktop.tsx` | 同上 |
| `request.ts` | 已有 `apidirectory.toggleFavorite`,无需修改 |
### 方案 B:完整实现(列表页 + 收藏夹页联动)
**前端修改:**
| 文件 | 修改内容 |
|------|----------|
| `ApiDirectory.tsx` | 添加收藏按钮 + 点击切换逻辑 |
| `ApiDirectoryDesktop.tsx` | 同上 |
| `Favorites.tsx` | 新增 `api` 类型到 `FavoriteItem`,添加 API 标签页 |
| `Favorites.css` | 适配 API 收藏卡片样式 |
**后端修改:**
| 文件 | 修改内容 |
|------|----------|
| `user/views/favorites.py` | `MyFavoritesView` 添加 `api` 类型查询分支,合并 `ApiFavorite` 数据 |
---
## 推荐方案
**方案 B(完整实现)**,原因:
1. 用户期望在收藏夹中看到所有收藏内容,API 收藏不应缺失
2. 列表页添加收藏按钮是 UX 的基础要求
3. 后端改动量小,仅需在现有收藏视图中添加一个查询分支
---
## 验证步骤
1. 在接口大全列表页点击收藏按钮,验证图标切换和数量更新
2. 刷新页面,验证收藏状态持久化
3. 进入收藏夹页面,验证 API 收藏显示在对应标签下
4. 在收藏夹中取消收藏,验证同步更新