3.0 KiB
3.0 KiB
接口大全收藏功能检测报告
检测目标
检测"接口大全"(API Directory)是否已实现收藏(收藏/收藏)功能
当前实现状态
✅ 已实现
-
后端模型 —
apidirectory/models.pyApiFavorite模型已定义,关联用户和 API 接口
-
后端 API 端点
toggleFavorite切换收藏接口已实现- 返回
is_favorited状态和favorites_count数量
-
详情页收藏功能 —
ApiDetail.tsx(✅ 完整实现)- 收藏按钮位于 Hero 区域操作区
- 支持空心/实心图标切换 (
StarOutlined/StarFilled) - 显示收藏数量
- 未登录时弹出登录框
- 调用
api_request.apidirectory.toggleFavorite(apiData.id)
-
列表数据支持
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(完整实现),原因:
- 用户期望在收藏夹中看到所有收藏内容,API 收藏不应缺失
- 列表页添加收藏按钮是 UX 的基础要求
- 后端改动量小,仅需在现有收藏视图中添加一个查询分支
验证步骤
- 在接口大全列表页点击收藏按钮,验证图标切换和数量更新
- 刷新页面,验证收藏状态持久化
- 进入收藏夹页面,验证 API 收藏显示在对应标签下
- 在收藏夹中取消收藏,验证同步更新