zhibo/android-app/后端接口TODO清单-分类管理.md

2.2 KiB
Raw Blame History

后端接口 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"
    }
  ]
}

说明:

  • 根据用户观看历史推荐分类
  • 如果用户未登录,返回热门分类

分类筛选流程

前端实现

  1. 页面加载时获取分类列表
  2. 显示分类标签页
  3. 用户点击分类标签
  4. 调用按分类获取房间列表接口
  5. 显示筛选结果

性能优化

  • 缓存分类列表(本地存储)
  • 异步筛选避免阻塞UI
  • 使用 RecyclerView 的 DiffUtil 优化列表更新
  • 保存用户最后选中的分类SharedPreferences