文档版本:v1.0 最后更新:2026-04-02 08:28:05
这份 TodoList 只列当前需要 backend 配合联调和近期应推进的事项。
原则:
当前已经可联调的主链:
GET /events/{eventPublicID}/playPOST /events/{eventPublicID}/launchPOST /sessions/{sessionPublicID}/startPOST /sessions/{sessionPublicID}/finishGET /sessions/{sessionPublicID}/result小程序侧已经具备:
launch -> GameLaunchEnvelope 适配session startsession finish所以 backend 现在最重要的不是再扩散接口,而是把当前契约和语义收稳。
当前已确认不再阻塞主链的事项:
evt_demo_001 的 release manifest 现已可正常加载前端当前需要配合的事项:
launch.resolvedRelease.manifestUrl 为准,不再回退到本地样例配置路径eventPublicIDreleaseIdmanifestUrleventPublicID = evt_demo_001channelCode = mini-demochannelType = wechat_mini当前 backend 已明确并固定:
finishedfailedcancelled建议当前口径:
finishedfailedcancelled说明:
当前小程序本地恢复逻辑已经是:
现在本地“放弃”只会清除本地恢复快照。
backend 已确认的目标语义是:
玩家点击“放弃恢复”后,这一局是否应同时在业务后端标记为
cancelled。
当前结论:
cancelled原因:
ongoingSession 会继续存在/events/{id}/play 和 /me/entry-home 可能一直把它当成可继续的局当前 backend 已收口:
POST /sessions/{id}/finish 使用 status=cancelled 是否就是官方放弃语义sessionToken,恢复放弃时是否允许直接调用 finish(cancelled)cancelled 后,event play 和 entry-home 中不再返回为 ongoingSession备注:
finish(cancelled)。联调和真实环境里,以下情况很常见:
当前 backend 已确认:
start 重复调用的幂等语义finish 重复调用的幂等语义当前实现:
start:如果已 running,返回当前 session,视为成功finish:如果已进入终态,返回当前 session/result,视为成功目的:
launch 返回契约,不随意漂移当前客户端已经按下面这些字段接入:
launch.resolvedRelease.releaseIdlaunch.resolvedRelease.manifestUrllaunch.resolvedRelease.manifestChecksumSha256launch.config.configUrllaunch.config.configLabellaunch.config.releaseIdlaunch.config.routeCodelaunch.business.sessionIdlaunch.business.sessionTokenlaunch.business.sessionTokenExpiresAtbackend 现在需要做的是:
前端当前需要做的是:
当前前端已经开始走:
event playlaunchsession start / finishbackend 建议再回归确认这几个接口对“进行中 session”的口径一致:
/me/entry-home/events/{eventPublicID}/play/sessions/{sessionPublicID}/result重点确认:
cancelled 后不再继续出现在 ongoing 入口failed 后不再继续出现在 ongoing 入口finished 后结果页与首页摘要字段一致小程序侧已经有:
backend 下一步建议提供:
建议返回至少包含:
birthDate 或 heartRateAgeweightKgrestingHeartRateBpmmaxHeartRateBpm(可选)这样后面心率页和消耗估算就能真实接业务数据。
session result 补一点稳定摘要字段校验客户端现在会上报:
finalDurationSecfinalScorecompletedControlstotalControlsdistanceMetersaverageSpeedKmhbackend 建议补两件事:
不要因为某个可选字段缺失就整局 finish 失败。
当前 workbench 已经很好用了。
建议后续再补:
cancelled这会很适合配合小程序故障恢复联调。
这项先预埋,不要先自行定语义。
前端建议准备好:
finish(cancelled) 的位置cancelled 语义确认完这样一旦 backend 确认语义,小程序就能快速切过去,不需要再改一轮页面流程。
当前已经有:
还缺:
这个建议在当前主链联稳之后再推进。
这部分不是当前联调阻塞项,但后面会成为业务壳的重要组成。
backend 后续建设需要继续坚持:
event / release / session / result 不按终端拆两套建议优先保持:
这样后面 APP 接入时不会推翻现有 backend 结构。
这些事项 backend 不建议自己先拍板:
failed 是否专指超时当前建议是:
failedcancelled如果 backend 有别的语义方案,需要先统一。
我个人建议写后端,并落成 cancelled。
但如果 backend 团队认为:
那就必须明确告知客户端,不然两边会冲突。
当前客户端是本地结果页。
backend 后面如果要接业务结果页,最好提前定:
backend 现在最值得先做的,不是扩接口,而是先确认下面 3 条:
finished / failed / cancelled 三态语义cancelledstart / finish 是否按幂等处理这 3 条一旦确定,前后端联调会顺很多。
当前 backend 最重要的任务不是“再加更多接口”,而是:
先把 session 运行态语义、放弃恢复语义和 ongoing session 口径定稳,再继续扩后台配置系统。