文档版本:v1.0 最后更新:2026-04-02 08:28:05
当前 backend 不是一个“给地图页喂数据的简单服务”,而是一个业务壳后端。
它负责:
它不负责:
补充约束:
平台层统一处理:
tenantentry_channeluserlogin_identityauth_refresh_token这层是整个平台共用能力。
它必须同时支撑:
业务层统一处理:
cardeventevent_playentry_homeprofile它面向页面和运营入口,但不直接承载游戏规则。
配置发布层统一处理:
event_releasemanifest_urlmanifest_checksum_sha256route_code这层是“客户端真正进入游戏时要消费的运行配置入口”。
这里的发布结构应保持终端中立:
运行层统一处理:
game_sessionsession_tokensession_results这层不关心编辑态,只关心“一局游戏”。
eventevent 是业务对象。
它负责:
它不是客户端实际运行的配置文件本体。
event_releaseevent_release 是配置发布对象。
它负责:
manifest_urlconfig_labelroute_code进入游戏时,客户端真正需要的是这里。
game_sessiongame_session 是运行对象。
它必须固化:
event_releasesession_token这样后续哪怕 event 切到新 release,旧 session 也不会漂移。
这套系统必须坚持下面这条原则:
业务层先解析出一份可启动的 release,客户端再基于这份 release 的 manifest 进入游戏。
不能走成:
客户端拿到 event 后自己再去推断该加载哪份配置
所以当前接口都在往这个方向收口:
GET /events/{id}/play 会返回 resolvedReleasePOST /events/{id}/launch 会返回 resolvedReleaseGET /sessions/{id} 会返回 resolvedReleaseGET /sessions/{id}/result 能追溯到当时的 release补充约束:
当前主要服务:
AuthServiceEntryServiceHomeServiceEntryHomeServiceEventServiceEventPlayServiceSessionServiceResultServiceProfileServiceDevService特点:
pgx 连接池manifest_url适用范围:
也就是说:
后面如果接实时网关,建议仍然走:
不要把微信身份或业务 token 直接暴露给实时网关。