|
|
6 часов назад | |
|---|---|---|
| .. | ||
| cmd | 6 дней назад | |
| docs | 6 часов назад | |
| internal | 6 часов назад | |
| migrations | 6 часов назад | |
| scripts | 5 дней назад | |
| .env.example | 6 дней назад | |
| README.md | 6 часов назад | |
| go.mod | 6 дней назад | |
| go.sum | 6 дней назад | |
| start-backend.ps1 | 5 дней назад | |
文档版本:v1.41 最后更新:2026-04-07 18:15:01
这套后端现在已经能支撑一条完整主链:
entry -> auth -> home/cards -> event play -> launch -> session -> result
当前已实现接口总数:
116开发环境补充说明:
/admin/ops-workbench 与 /ops/admin/* 在 APP_ENV != production 时默认免登录可用。资源总览 先展示关键统计与当前运行时信息;地图页只保留关联活动数量和摘要,活动明细统一放到 活动管理 / 活动编排。地图 / 地点管理 当前按“地图列表优先”组织:
添加地图 / 添加地点新增的游客模式公开接口:
GET /public/experience-mapsGET /public/experience-maps/{mapAssetPublicID}GET /public/events/{eventPublicID}GET /public/events/{eventPublicID}/playPOST /public/events/{eventPublicID}/launch这组接口用于支撑“未登录游客只体验默认活动”的最小链路。
新增的地图资源与默认体验活动接口:
GET /experience-mapsGET /experience-maps/{mapAssetPublicID}这组接口用于支撑“地图列表下的默认活动”最小产品化需求。
新增的运维地图管理接口:
GET /ops/admin/region-optionsGET /admin/map-assetsPUT /admin/map-assets/{mapAssetPublicID}GET /ops/admin/map-assetsPUT /ops/admin/map-assets/{mapAssetPublicID}GET /ops/admin/course-sourcesGET /ops/admin/course-sources/{sourcePublicID}GET /ops/admin/course-sets/{courseSetPublicID}POST /ops/admin/eventsPUT /ops/admin/events/{eventPublicID}这组接口用于把运维后台收成统一主流程:
并且已经按“配置驱动游戏”收口:
eventevent_releasemanifest_urlsession 会固化当时实际绑定的 release当前还要明确一条业务规则:
event 默认绑定、活动草稿配置、未发布 presentation / content bundle 都不能直接作为玩家正式进入依据currentPresentation / currentContentBundle 在玩家链路里表示的是:
play.canLaunch 和 launch 也已按同一套规则收口:
manifestruntimepresentationcontent bundle
时,玩家才允许正式进入is_default_experience = true 的活动/me/entry-home/me/resultslaunch 会复用正式 session 模型,但返回:
launch.source = public-default-experiencelaunch.business.isGuest = true当前 workbench 里新增的“当前 Launch 实际配置摘要”仅用于调试:
configUrlreleaseIdmanifestUrlschemaVersionplayfield.kindgame.modelaunch 返回的:
launch.config.configUrllaunch.resolvedRelease.manifestUrl当前 workbench 里新增的“前端调试日志”也仅用于联调:
POST 到 /dev/client-logs当前 demo 真实输入第一刀也已经接入:
game manifestpresentation schemacontent manifestGET /dev/demo-assets/manifests/{demoKey}GET /dev/demo-assets/presentations/{demoKey}GET /dev/demo-assets/content-manifests/{demoKey}当前 workbench 的 Bootstrap 语义也已经拆开:
Bootstrap Demo(只准备数据)
Bootstrap + 发布当前玩法
Bootstrap Demo(只准备数据) 后都会直接具备:
canLaunchDemo ... 收口为中文活动样例,便于前端和总控直接对口排查gotomars/kml/lxcb-001/2026-04-07/route01.kmlgotomars/kml/lxcb-001/2026-04-07/route02.kmlgotomars/kml/lxcb-001/2026-04-07/route03.kmlgotomars/kml/lxcb-001/2026-04-07/route04.kmlOSS / CDNtmp/ 仅作为临时收件箱,不参与正式发布源POST /admin/ops/tile-releases/importPOST /admin/ops/course-sets/import-kml-batchcourse set / variants
收成可重复执行的运维入口,而不是继续依赖手工脚本或改代码上传 OSSGET /admin/assetsPOST /admin/assets/register-linkPOST /admin/assets/uploadGET /admin/assets/{assetPublicID}/ops/auth/*/ops/admin/*GET /admin/ops-workbench/dev/workbench 继续只做联调、回归、日志与摘要/admin/ops-workbench 只做资源录入、OSS 纳管、地图/KML 导入/admin/ops-workbench/ops/admin/*/ops/auth/*Import Tile Release / Import KML Batch 当前已从调试工作台主操作区迁到:/admin/ops-workbench/dev/workbench 当前只保留运维后台入口说明与跳转,不再承载正式资源录入操作/admin/ops-workbench 当前已收成 5 块结构:当前活动卡片列表最小产品化第一刀也已经进入 backend:
/cards/home/me/entry-home这三处当前已统一补齐最小活动卡片摘要字段:
summarystatusstatusCodetimeWindowctaTextisDefaultExperienceeventTypecurrentPresentationcurrentContentBundle当前口径:
currentPresentation / currentContentBundle 仍表示:
isDefaultExperience 当前由卡片显式字段控制timeWindow / ctaText 当前先按后端派生规则提供,允许后续继续演进当前“准备页地图预览 V1”也已开始接入,但仍保持只读增强项边界:
GET /events/{eventPublicID}GET /events/{eventPublicID}/playpreview.modepreview.baseTiles.tileBaseUrlpreview.baseTiles.zoompreview.baseTiles.tileSizepreview.viewport.width / heightpreview.viewport.minLon / minLat / maxLon / maxLatpreview.variants[].controlspreview.variants[].legspreview.selectedVariantId准备页地图预览状态.env.examplecd D:\dev\cmr-mini\backend
.\start-backend.ps1
tenant + entry_channel/home、/cards、/me/entry-home/events/{id}/play、/events/{id}/launchstart / finish / detail/sessions/{id}/result、/me/resultsplaces / map-assets / tile-releases / course-sources / course-sets / course-variants / runtime-bindingsruntimeBinding -> eventRelease -> launch.runtimepublish(runtimeBindingId) -> eventRelease -> launch.runtimeevent_presentations / content_bundles / event_release -> presentation,bundle,runtimeevent detail / event play / launch -> presentation,bundle 摘要release 摘要闭环 + content bundle importpresentation import + event 默认 active 绑定 + publish 默认继承/dev/workbench
play / launch / result / historyBootstrap Demo 已改用真实可访问的 KML 与地图资源 URLc01.kml / c02.kml 输入POST /dev/client-logsGET /dev/client-logsDELETE /dev/client-logsevt_demo_001evt_demo_score_o_001evt_demo_variant_manual_001