# API 测试链路 本文件记录 `docs/api-test-harness.html` 内置的流程化链路。HTML 只直接执行 HTTP API;腾讯云 IM/TRTC SDK 动作作为客户端步骤列出,不伪造成后端接口。 ## 01 三方注册/登录 -> 资料 -> 国家 -> token 生命周期 1. `GET /healthz/ready`:确认 gateway 可接流量。 2. `GET /api/v1/countries`:确认注册页国家主数据可读。 3. `POST /api/v1/auth/third-party/login`:使用真实 Firebase/Google ID token 登录或注册,写入 username/avatar/gender/birth/country/device/source 等注册字段。 4. `GET /api/v1/users/me/identity`:确认 user_id/display_user_id 映射。 5. `GET /api/v1/users/me/overview`:确认我的页聚合数据。 6. `POST /api/v1/users/me/profile/update`:修改用户名、头像、生日。 7. `POST /api/v1/users/me/country/change`:修改国家;同一用户一个月只允许一次,重复执行应返回冲突。 8. `POST /api/v1/auth/password/set`:首次设置密码。 9. `POST /api/v1/auth/token/refresh`:刷新 access token。 10. `POST /api/v1/auth/logout`:失效 refresh session。 ## 02 密码登录 -> refresh -> logout 1. `POST /api/v1/auth/account/login`:账号是当前展示短号。 2. `GET /api/v1/users/me/identity`:验证登录态。 3. `POST /api/v1/auth/token/refresh`:验证 refresh 轮换。 4. `POST /api/v1/auth/logout`:验证 session 失效。 ## 03 房间 -> IM -> RTC -> MicUp -> 发流确认 -> 下麦离房 1. `POST /api/v1/rooms/create`:创建房间,成功后回填 `room_id`。 2. `POST /api/v1/rooms/join`:加入业务 presence。 3. `GET /api/v1/rooms/current`:确认当前可恢复房间。 4. `GET /api/v1/im/usersig`:获取 IM `sdk_app_id/user_id/user_sig`。 5. 客户端 IM SDK:`TIM.create + login`,房间群 ID 使用 `room_id`。 6. `POST /api/v1/rtc/token`:获取 RTC `sdk_app_id/rtc_user_id/user_sig/str_room_id`。 7. 客户端 TRTC SDK:使用 `str_room_id` 进房。 8. `POST /api/v1/rooms/mic/up`:麦位进入 `pending_publish`,回填 `mic_session_id/room_version`。 9. 客户端 TRTC SDK:`switchRole(anchor) + startLocalAudio`。 10. `POST /api/v1/rooms/mic/publishing/confirm`:带 `mic_session_id/room_version/event_time_ms` 确认发布。 11. `GET /api/v1/rooms/snapshot`:确认麦位进入 `publishing`。 12. `POST /api/v1/rooms/heartbeat`:刷新业务 presence。 13. `POST /api/v1/rooms/mic/down`:下麦。 14. `POST /api/v1/rooms/leave`:离房。 ## 04 MicUp 未确认 -> publish_timeout 自动释放验证 1. `POST /api/v1/rooms/create` 2. `POST /api/v1/rooms/join` 3. `POST /api/v1/rtc/token` 4. `POST /api/v1/rooms/mic/up` 5. 不调用 `ConfirmMicPublishing`,等待 `publish_deadline_ms` 或服务配置 deadline。 6. `GET /api/v1/rooms/current` 7. `GET /api/v1/rooms/snapshot`:确认麦位释放或状态转移符合 `publish_timeout`。 ## 05 App 消息 tab/inbox 读写链路 1. `GET /api/v1/messages/tabs` 2. `GET /api/v1/messages` 3. `POST /api/v1/messages/{message_id}/read` 4. `POST /api/v1/messages/read-all` 5. `DELETE /api/v1/messages/{message_id}` ## 06 资源/礼物/送礼/币商转账链路 1. `GET /api/v1/resources` 2. `GET /api/v1/resource-groups/{group_id}` 3. `GET /api/v1/gifts` 4. `GET /api/v1/users/me/resources` 5. `POST /api/v1/users/me/resources/{resource_id}/equip` 6. `POST /api/v1/rooms/gift/send` 7. `POST /api/v1/wallet/coin-seller/transfer` ## 07 后台国家/区域配置链路 1. `POST /api/v1/auth/login` 2. `GET /api/v1/auth/me` 3. `GET /api/v1/admin/countries` 4. `POST /api/v1/admin/countries` 5. `POST /api/v1/admin/countries/{country_id}/enable` 6. `GET /api/v1/admin/regions` 7. `POST /api/v1/admin/regions` 8. `PUT /api/v1/admin/regions/{region_id}/countries` 9. `POST /api/v1/admin/regions/{region_id}/enable` ## 08 后台币商库存入账 -> App 币商转账 1. `POST /api/v1/auth/login` 2. `GET /api/v1/admin/coin-sellers` 3. `POST /api/v1/admin/coin-sellers/{user_id}/stock-credits` 4. `POST /api/v1/wallet/coin-seller/transfer` 5. `GET /api/v1/admin/payment/recharge-bills`