# Huwaa 首页房间筛选 Flutter 对接 ## 地址 筛选目录: ```http GET /api/v1/rooms/filters Authorization: Bearer X-App-Code: huwaa ``` 房间列表: ```http GET /api/v1/rooms?tab=hot®ion_id=1001 GET /api/v1/rooms?tab=hot&country_code=AE ``` 目录接口要求用户已登录并完成资料。租户权威值是 access token claims 中的 `app_code`;`X-App-Code`/包名只参与请求入口解析,不能覆盖 token 或用来跨租户切换。Huwaa 返回本 App 的全部 active 区域和其中 enabled 国家;其他 App 只返回当前用户所在 active 区域及其国家。 ## 参数 目录接口没有 query 参数。每个 option 都返回 `query_key` 和 `query_value`,Flutter 按下面规则调用房间列表: - All:`query_key`、`query_value` 都为空,不传 `region_id` 和 `country_code`。 - 区域:把 option 的 `query_key=region_id`、`query_value` 原样放进 query。 - 国家:把 option 的 `query_key=country_code`、`query_value` 原样放进 query。 - `region_id` 与 `country_code` 不能同时传;切换筛选项时清空旧 cursor,再从第一页请求。 - 旧参数 `country` 继续兼容,新代码统一使用 `country_code`。 `parent_region_id` 只用于把国家展示在所属区域下。筛选国家时只传 `country_code`,不要把 `parent_region_id` 同时作为 `region_id` 传入。 ## 返回值 ```json { "code": "OK", "message": "ok", "request_id": "req-room-filters", "data": { "all": { "filter_type": "all", "query_key": "", "query_value": "" }, "regions": [ { "filter_type": "region", "query_key": "region_id", "query_value": "1001", "region_id": 1001, "region_code": "MIDDLE_EAST", "region_name": "Middle East", "sort_order": 10 } ], "countries": [ { "filter_type": "country", "query_key": "country_code", "query_value": "AE", "parent_region_id": 1001, "country_id": 971, "country_code": "AE", "country_name": "United Arab Emirates", "country_display_name": "UAE", "country_flag": "🇦🇪", "sort_order": 10 } ] } } ``` 目录的数组顺序已经使用后台 `sort_order`。国家只在“国家 enabled 且所属区域 active”时下发,客户端不要自行拼接国家码或区域 ID。 `GET /api/v1/rooms` 响应中的旧 `data.countries` 字段继续保留,供旧版当前区域国家筛选使用;Huwaa 新版完整目录以本接口为准。 ## 相关 IM/RTC 筛选目录和列表筛选不创建房间、不入腾讯云 IM 群,也不签发 RTC token。用户实际进入房间后,继续按现有 JoinRoom 流程处理 IM/RTC。