Files
cmr-mini/b2f.md

251 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# b2f
> 文档版本v1.0
> 最后更新2026-04-02 09:01:17
说明:
- 只写事实和请求
- 每条固定包含:时间、谁提的、当前事实、需要对方确认什么、是否已解决
---
## 待确认
### B2F-001
- 时间2026-04-01
- 谁提的backend
- 当前事实:
- backend 当前主链已经可联调:
- `POST /auth/login/wechat-mini`
- `GET /me/entry-home`
- `GET /events/{eventPublicID}/play`
- `POST /events/{eventPublicID}/launch`
- `POST /sessions/{sessionPublicID}/start`
- `POST /sessions/{sessionPublicID}/finish`
- `GET /sessions/{sessionPublicID}/result`
- 当前建议统一使用 demo 入口:
- `eventPublicID = evt_demo_001`
- `channelCode = mini-demo`
- `channelType = wechat_mini`
- 需要对方确认什么:
- frontend 是否按这组 demo 数据作为当前唯一联调入口
- 是否已解决:否
### B2F-002
- 时间2026-04-01
- 谁提的backend
- 当前事实:
- 进入游戏的正式流程必须以 `launch` 返回值为准
- backend 当前约定字段:
- `launch.resolvedRelease.releaseId`
- `launch.resolvedRelease.manifestUrl`
- `launch.resolvedRelease.manifestChecksumSha256`
- `launch.config.configUrl`
- `launch.config.configLabel`
- `launch.config.releaseId`
- `launch.config.routeCode`
- `launch.business.sessionId`
- `launch.business.sessionToken`
- `launch.business.sessionTokenExpiresAt`
- 需要对方确认什么:
- frontend 是否确认正式流程只消费上述字段,不再自行推断 release URL
- 是否已解决:否
---
## 已确认
### B2F-003
- 时间2026-04-02
- 谁提的backend
- 当前事实:
- backend 已确认 session 三态正式语义:
- 正常完成 -> `finished`
- 超时或规则失败 -> `failed`
- 主动退出 / 放弃恢复 -> `cancelled`
- 需要对方确认什么:
- frontend 按这套语义继续联调
- 是否已解决:是
### B2F-004
- 时间2026-04-01
- 谁提的backend
- 当前事实:
- 正式联调时不应回退到本地样例配置路径
- 不应直接读取根目录 `event/*.json`
- 应只认 launch 返回的 `manifestUrl`
- 需要对方确认什么:
-
- 是否已解决:是
### B2F-005
- 时间2026-04-01
- 谁提的backend
- 当前事实:
- 接口说明优先看 workbench 里的中文 API 列表
- 深入字段说明再看 [接口清单](D:/dev/cmr-mini/backend/docs/接口清单.md)
- 需要对方确认什么:
-
- 是否已解决:是
### B2F-006
- 时间2026-04-02
- 谁提的backend
- 当前事实:
- backend 已确认“放弃恢复”官方语义为 `POST /sessions/{sessionPublicID}/finish``status=cancelled`
- 同一局的旧 `sessionToken` 在该场景允许继续用于 `finish(cancelled)`
- `cancelled``failed` 后都不会再作为 `ongoingSession` 返回
- 需要对方确认什么:
- frontend 可正式把“放弃恢复”接到 `finish(cancelled)`
- 是否已解决:是
### B2F-007
- 时间2026-04-02
- 谁提的backend
- 当前事实:
- backend 已把 `start / finish` 收口成幂等处理
- 重复 `start`
- `launched` -> 推进到 `running`
- `running` / 终态 -> 直接返回当前 session
- 重复 `finish`
- 已终态 -> 直接返回当前 session / result
- 需要对方确认什么:
- frontend 继续按当前补报 / 重试逻辑联调
- 是否已解决:是
---
## 阻塞
### B2F-008
- 时间2026-04-01
- 谁提的backend
- 当前事实:
- 如果 frontend 再出现 manifest 加载失败backend 仅靠一句“加载失败”无法定位
- 需要对方确认什么:
- 如再出现此类问题,请一次性提供:
- `eventPublicID`
- `releaseId`
- `manifestUrl`
- 页面报错文案
- 控制台日志
- 网络请求日志
- 是否已解决:否
---
## 已完成
### B2F-009
- 时间2026-04-01
- 谁提的backend
- 当前事实:
- backend 已修复 `publish build` 只写 DB、不上传 OSS 的问题
- 新发布的 demo release manifest 已可正常访问
- 当前可用 release
- `eventPublicID = evt_demo_001`
- `releaseId = rel_e7dd953743c5c0d2`
- `manifestUrl = https://oss-mbh5.colormaprun.com/gotomars/event/releases/evt_demo_001/rel_e7dd953743c5c0d2/manifest.json`
- 需要对方确认什么:
-
- 是否已解决:是
### B2F-010
- 时间2026-04-01
- 谁提的backend
- 当前事实:
- backend workbench 已支持中文 API 列表
- 当前可用于日常联调:
- `POST /dev/bootstrap-demo`
- `GET /dev/workbench`
- 需要对方确认什么:
-
- 是否已解决:是
### B2F-011
- 时间2026-04-02
- 谁提的backend
- 当前事实:
- backend 已新增后台第一版资源对象接口:
- `/admin/maps`
- `/admin/playfields`
- `/admin/resource-packs`
- backend 已新增后台 `event` 组装接口:
- `/admin/events`
- `/admin/events/{eventPublicID}/source`
- 这批接口主要服务后续后台配置运营,不影响当前小程序主链联调
- 需要对方确认什么:
-
- 是否已解决:是
### B2F-012
- 时间2026-04-02
- 谁提的backend
- 当前事实:
- backend 已补后台运营闭环接口:
- `GET /admin/events/{eventPublicID}/pipeline`
- `POST /admin/sources/{sourceID}/build`
- `GET /admin/builds/{buildID}`
- `POST /admin/builds/{buildID}/publish`
- 当前后台侧已经可以完成:
- 资源对象录入
- event source 组装
- preview build
- publish release
- 需要对方确认什么:
-
- 是否已解决:是
### B2F-013
- 时间2026-04-02
- 谁提的backend
- 当前事实:
- backend 已补后台 `rollback` 接口:
- `POST /admin/events/{eventPublicID}/rollback`
- 当前后台侧已具备完整最小闭环:
- 资源对象
- event source 组装
- build
- publish
- rollback
- 需要对方确认什么:
-
- 是否已解决:是
---
## 下一步
### B2F-014
- 时间2026-04-02
- 谁提的backend
- 当前事实:
- session P0 已完成一轮收口
- 当前最值得继续联调确认的是:
- 放弃恢复 -> `finish(cancelled)`
- `failed / cancelled` 后 ongoing 消失
- 重复 `start / finish` 不再打断主链
- 需要对方确认什么:
- frontend 当前优先配合:
- 用当前 demo release 回归 `play -> launch -> map load`
- 回归“继续恢复 / 放弃恢复”两条路径
- 如发现状态口径不一致,直接在 `f2b.md` 标具体接口和返回值
- 是否已解决:否