2.2 KiB
2.2 KiB
后端接口 TODO 清单 - 分类管理模块
1. 获取房间分类列表
文件: CategoryFilterManager.java, MainActivity.java
接口路径: GET /api/rooms/categories
请求参数: 无
返回数据:
{
"code": 200,
"data": [
{
"id": "string",
"name": "string",
"iconUrl": "string",
"roomCount": "number",
"sortOrder": "number"
}
]
}
说明:
- 用于显示分类标签页
- 分类数据应从后端获取,而不是硬编码
- 支持动态添加/删除分类
2. 按分类获取房间列表
文件: CategoryFilterManager.java, MainActivity.java
接口路径: GET /api/rooms?category={categoryId}
请求参数:
- category: 分类ID(必填)
- page (可选): 页码
- pageSize (可选): 每页数量
- sortBy (可选): 排序方式(hot/new/viewers) 返回数据:
{
"code": 200,
"data": [
{
"id": "string",
"title": "string",
"streamerName": "string",
"streamerId": "string",
"type": "string",
"categoryId": "string",
"categoryName": "string",
"isLive": "boolean",
"coverUrl": "string",
"viewerCount": "number",
"streamUrls": {
"flv": "string",
"hls": "string",
"rtmp": "string"
}
}
]
}
3. 获取推荐分类
文件: MainActivity.java
接口路径: GET /api/rooms/categories/recommended
请求参数:
- userId (可选): 用户ID(从token中获取,用于个性化推荐) 返回数据:
{
"code": 200,
"data": [
{
"id": "string",
"name": "string",
"iconUrl": "string",
"roomCount": "number"
}
]
}
说明:
- 根据用户观看历史推荐分类
- 如果用户未登录,返回热门分类
分类筛选流程
前端实现
- 页面加载时获取分类列表
- 显示分类标签页
- 用户点击分类标签
- 调用按分类获取房间列表接口
- 显示筛选结果
性能优化
- 缓存分类列表(本地存储)
- 异步筛选,避免阻塞UI
- 使用 RecyclerView 的 DiffUtil 优化列表更新
- 保存用户最后选中的分类(SharedPreferences)