11 KiB
11 KiB
b2f
文档版本:v1.3 最后更新:2026-04-02 15:25:40
说明:
- 只写事实和请求
- 每条固定包含:时间、谁提的、当前事实、需要对方确认什么、是否已解决
待确认
B2F-001
- 时间:2026-04-01
- 谁提的:backend
- 当前事实:
- backend 当前主链已经可联调:
POST /auth/login/wechat-miniGET /me/entry-homeGET /events/{eventPublicID}/playPOST /events/{eventPublicID}/launchPOST /sessions/{sessionPublicID}/startPOST /sessions/{sessionPublicID}/finishGET /sessions/{sessionPublicID}/result
- 当前建议统一使用 demo 入口:
eventPublicID = evt_demo_001channelCode = mini-demochannelType = wechat_mini
- backend 当前主链已经可联调:
- 需要对方确认什么:
- frontend 是否按这组 demo 数据作为当前唯一联调入口
- 是否已解决:否
B2F-002
- 时间:2026-04-01
- 谁提的:backend
- 当前事实:
- 进入游戏的正式流程必须以
launch返回值为准 - backend 当前约定字段:
launch.resolvedRelease.releaseIdlaunch.resolvedRelease.manifestUrllaunch.resolvedRelease.manifestChecksumSha256launch.config.configUrllaunch.config.configLabellaunch.config.releaseIdlaunch.config.routeCodelaunch.business.sessionIdlaunch.business.sessionTokenlaunch.business.sessionTokenExpiresAt
- 进入游戏的正式流程必须以
- 需要对方确认什么:
- frontend 是否确认正式流程只消费上述字段,不再自行推断 release URL
- 是否已解决:否
B2F-015
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已阅读前端多赛道文档:
- backend 认可第一阶段先做“最小契约”,不先做完整后台模型
- backend 当前建议的第一阶段正式口径为:
play.assignmentModeplay.courseVariants[]idnamedescriptionrouteCodeselectable
launch.variant.idlaunch.variant.namelaunch.variant.routeCodelaunch.variant.assignmentModesession / ongoing / recent / result摘要中补:variantIdvariantNamerouteCode
- backend 第一阶段实现目标仍然保持保守:
- 一个 session 只绑定一个最终
variantId launch返回最终绑定结果- 恢复链不重新分配 variant
- 一个 session 只绑定一个最终
- 当前兼容性约束:
- 如果
assignmentMode=manual且前端暂时未传variantId - backend 当前会先回退到首个可选 variant,避免旧主链直接被打断
- 如果
- backend 当前已完成第一阶段最小实现:
GET /events/{eventPublicID}/playPOST /events/{eventPublicID}/launchGET /me/entry-homeGET /sessions/{sessionPublicID}GET /sessions/{sessionPublicID}/resultGET /me/resultsGET /me/sessions- 上述链路已能携带第一阶段 variant 摘要字段
- 需要对方确认什么:
- frontend 可按这组字段开始第一阶段联调
- 是否已解决:是
已确认
B2F-003
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已确认 session 三态正式语义:
- 正常完成 ->
finished - 超时或规则失败 ->
failed - 主动退出 / 放弃恢复 ->
cancelled
- 正常完成 ->
- backend 已确认 session 三态正式语义:
- 需要对方确认什么:
- frontend 按这套语义继续联调
- 是否已解决:是
B2F-004
- 时间:2026-04-01
- 谁提的:backend
- 当前事实:
- 正式联调时不应回退到本地样例配置路径
- 不应直接读取根目录
event/*.json - 应只认 launch 返回的
manifestUrl
- 需要对方确认什么:
- 无
- 是否已解决:是
B2F-005
- 时间:2026-04-01
- 谁提的:backend
- 当前事实:
- 接口说明优先看 workbench 里的中文 API 列表
- 深入字段说明再看 接口清单
- 需要对方确认什么:
- 无
- 是否已解决:是
B2F-006
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已确认“放弃恢复”官方语义为
POST /sessions/{sessionPublicID}/finish且status=cancelled - 同一局的旧
sessionToken在该场景允许继续用于finish(cancelled) cancelled和failed后都不会再作为ongoingSession返回
- backend 已确认“放弃恢复”官方语义为
- 需要对方确认什么:
- frontend 可正式把“放弃恢复”接到
finish(cancelled)
- frontend 可正式把“放弃恢复”接到
- 是否已解决:是
B2F-007
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已把
start / finish收口成幂等处理 - 重复
start:launched-> 推进到runningrunning/ 终态 -> 直接返回当前 session
- 重复
finish:- 已终态 -> 直接返回当前 session / result
- backend 已把
- 需要对方确认什么:
- frontend 继续按当前补报 / 重试逻辑联调
- 是否已解决:是
B2F-016
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已确认
launch当前关键字段为前端正式联调契约:resolvedRelease.manifestUrlresolvedRelease.releaseIdbusiness.sessionIdbusiness.sessionTokenbusiness.sessionTokenExpiresAt
- 当前阶段 backend 不会单边调整这些字段名或层级
- 如后续确需调整,backend 会先在
b2f.md明确通知,再安排联调变更
- backend 已确认
- 需要对方确认什么:
- frontend 继续按当前字段接入,不做额外推断
- 是否已解决:是
B2F-017
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已完成对 ongoing 口径的代码回归确认
- 当前实现中:
- 只有
launched和running会被识别为 ongoing cancelled、failed、finished都不会再进入 ongoing
- 只有
/me/entry-home与/events/{eventPublicID}/play当前都复用同一 ongoing 判定逻辑/me/results当前只返回终态 session:finishedfailedcancelled
- 当前首页摘要、play 摘要、result 详情都会复用同一组 session 基础摘要字段:
idstatuseventIdeventNamereleaseIdconfigLabelrouteCode
- 需要对方确认什么:
- frontend 可以按这套 ongoing / result 口径继续回归
- 是否已解决:是
阻塞
B2F-008
- 时间:2026-04-01
- 谁提的:backend
- 当前事实:
- 如果 frontend 再出现 manifest 加载失败,backend 仅靠一句“加载失败”无法定位
- 需要对方确认什么:
- 如再出现此类问题,请一次性提供:
eventPublicIDreleaseIdmanifestUrl- 页面报错文案
- 控制台日志
- 网络请求日志
- 如再出现此类问题,请一次性提供:
- 是否已解决:否
已完成
B2F-009
- 时间:2026-04-01
- 谁提的:backend
- 当前事实:
- backend 已修复
publish build只写 DB、不上传 OSS 的问题 - 新发布的 demo release manifest 已可正常访问
- 当前可用 release:
eventPublicID = evt_demo_001releaseId = rel_e7dd953743c5c0d2manifestUrl = https://oss-mbh5.colormaprun.com/gotomars/event/releases/evt_demo_001/rel_e7dd953743c5c0d2/manifest.json
- backend 已修复
- 需要对方确认什么:
- 无
- 是否已解决:是
B2F-010
- 时间:2026-04-01
- 谁提的:backend
- 当前事实:
- backend workbench 已支持中文 API 列表
- 当前可用于日常联调:
POST /dev/bootstrap-demoGET /dev/workbench
- 需要对方确认什么:
- 无
- 是否已解决:是
B2F-011
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已新增后台第一版资源对象接口:
/admin/maps/admin/playfields/admin/resource-packs
- backend 已新增后台
event组装接口:/admin/events/admin/events/{eventPublicID}/source
- 这批接口主要服务后续后台配置运营,不影响当前小程序主链联调
- backend 已新增后台第一版资源对象接口:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2F-012
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已补后台运营闭环接口:
GET /admin/events/{eventPublicID}/pipelinePOST /admin/sources/{sourceID}/buildGET /admin/builds/{buildID}POST /admin/builds/{buildID}/publish
- 当前后台侧已经可以完成:
- 资源对象录入
- event source 组装
- preview build
- publish release
- backend 已补后台运营闭环接口:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2F-013
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已补后台
rollback接口:POST /admin/events/{eventPublicID}/rollback
- 当前后台侧已具备完整最小闭环:
- 资源对象
- event source 组装
- build
- publish
- rollback
- backend 已补后台
- 需要对方确认什么:
- 无
- 是否已解决:是
B2F-018
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已补一条可联调的
manual多赛道 demo 活动:eventPublicID = evt_demo_variant_manual_001releaseId = rel_demo_variant_manual_001channelCode = mini-demochannelType = wechat_mini
- 当前 demo 配置为:
assignmentMode = manualcourseVariants = [variant_a, variant_b]
- 当前两条可选赛道:
variant_aname = A 线routeCode = route-variant-a
variant_bname = B 线routeCode = route-variant-b
- 该活动已由
POST /dev/bootstrap-demo自动准备
- backend 已补一条可联调的
- 需要对方确认什么:
- 无
- 是否已解决:是
B2F-019
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- backend 已完成
variant_b的 service 层回归验证 - 已确认从
launch选定的variantId会稳定回流到:GET /me/entry-homeGET /sessions/{sessionPublicID}/resultGET /me/results
- 实测链路为:
play.assignmentMode=manualplay.courseVariants=2launch.variant.id=variant_bentry-home recent.variantId=variant_bresult.session.variantId=variant_bresults[0].session.variantId=variant_b
- backend 已完成
- 需要对方确认什么:
- 无
- 是否已解决:是
下一步
B2F-014
- 时间:2026-04-02
- 谁提的:backend
- 当前事实:
- session P0 已完成一轮收口
- 当前最值得继续联调确认的是:
- 放弃恢复 ->
finish(cancelled) failed / cancelled后 ongoing 消失- 重复
start / finish不再打断主链
- 放弃恢复 ->
- 需要对方确认什么:
- frontend 当前优先配合:
- 用当前 demo release 回归
play -> launch -> map load - 回归“继续恢复 / 放弃恢复”两条路径
- 如确认进入多赛道第一阶段联调,请先回复
B2F-015 - 如发现状态口径不一致,直接在
f2b.md标具体接口和返回值
- 用当前 demo release 回归
- frontend 当前优先配合:
- 是否已解决:否