# 房间关注接口 Flutter 对接 ## 接口地址 `POST /api/v1/rooms/{room_id}/follow` `DELETE /api/v1/rooms/{room_id}/follow` 本地开发地址: ```text http://127.0.0.1:13000 ``` ## 请求方法 | 方法 | 说明 | | --- | --- | | `POST` | 关注房间 | | `DELETE` | 取消关注房间 | ## 请求头 | Header | 必填 | 模拟值 | 说明 | | --- | --- | --- | --- | | `Authorization` | 是 | `Bearer ` | 登录 access token;服务端从 token 读取当前用户 ID。 | | `X-App-Code` | 否 | `lalu` | App 编码;登录态接口最终以 token 内的 `app_code` 为准。 | ## 参数 Path 参数: | 参数 | 必填 | 类型 | 模拟值 | 说明 | | --- | --- | --- | --- | --- | | `room_id` | 是 | string | `room_10001` | 房间 ID;只允许字母、数字、下划线、短横线,最长 48 位。 | Query 参数:无。 请求体:无。不要传 `user_id`,服务端只使用 token 中的当前用户。 关注请求示例: ```http POST /api/v1/rooms/room_10001/follow Authorization: Bearer X-App-Code: lalu ``` 取消关注请求示例: ```http DELETE /api/v1/rooms/room_10001/follow Authorization: Bearer X-App-Code: lalu ``` ## 返回体模拟数据 关注成功: ```json { "code": "OK", "message": "ok", "request_id": "req_abc", "data": { "room_id": "room_10001", "is_followed": true, "followed_at_ms": 1710000000123, "server_time_ms": 1710000000456 } } ``` 取消关注成功: ```json { "code": "OK", "message": "ok", "request_id": "req_abc", "data": { "room_id": "room_10001", "is_followed": false, "server_time_ms": 1710000000789 } } ``` 字段说明: | 字段 | 类型 | 说明 | | --- | --- | --- | | `room_id` | string | 本次操作的房间 ID。 | | `is_followed` | bool | 当前登录用户是否已关注该房间。 | | `followed_at_ms` | int64 | 关注成功时间,Unix epoch milliseconds;取消关注返回体不带该字段。 | | `server_time_ms` | int64 | 服务端当前时间,Unix epoch milliseconds。 | ## 错误处理 失败返回仍使用统一 envelope: ```json { "code": "INVALID_ARGUMENT", "message": "invalid argument", "request_id": "req_abc" } ``` | HTTP 状态码 | `code` | 处理方式 | | --- | --- | --- | | `400` | `INVALID_ARGUMENT` | `room_id` 为空或格式非法,客户端不要重试,检查传参。 | | `401` | `UNAUTHORIZED` | token 缺失、无效、过期或会话失效,重新登录。 | | `403` | `PROFILE_REQUIRED` | 用户资料未完成,跳转资料补全流程。 | | `404` | `NOT_FOUND` | 关注时房间不存在,刷新房间状态或退出当前房间页。 | | `409` | `ROOM_CLOSED` | 关注时房间已关闭,刷新房间状态或退出当前房间页。 | | `502` | `UPSTREAM_ERROR` | 内部服务暂不可用,可提示稍后重试。 | 幂等规则: | 场景 | 返回 | | --- | --- | | 重复关注已关注房间 | `200 OK`,`is_followed=true`,不刷新原 `followed_at_ms`。 | | 取消未关注房间 | `200 OK`,`is_followed=false`。 |