9.3 KiB
9.3 KiB
API 清单
文档版本:v1.0 最后更新:2026-04-02 09:01:17
本文档只记录当前 backend 已实现接口,不写未来规划接口。
1. Health
GET /healthz
用途:
- 健康检查
2. Auth
POST /auth/sms/send
用途:
- 发登录验证码
- 发绑定手机号验证码
核心参数:
countryCodemobileclientTypedeviceKeyscene
POST /auth/login/sms
用途:
- APP 手机号验证码登录
返回重点:
usertokens.accessTokentokens.refreshToken
POST /auth/login/wechat-mini
用途:
- 微信小程序登录
开发态:
- 支持
dev-前缀 code
POST /auth/bind/mobile
鉴权:
- Bearer token
用途:
- 已登录用户绑定手机号
- 必要时执行账号合并
POST /auth/refresh
用途:
- 刷新 access token
POST /auth/logout
用途:
- 撤销 refresh token
3. Entry / Home
GET /entry/resolve
用途:
- 解析当前入口归属哪个 tenant / channel
查询参数:
channelCodechannelTypeplatformAppIdtenantCode
GET /home
用途:
- 返回入口首页卡片
GET /cards
用途:
- 只返回卡片列表
GET /me/entry-home
鉴权:
- Bearer token
用途:
- 首页聚合接口
返回重点:
usertenantchannelcardsongoingSessionrecentSession
4. Event
GET /events/{eventPublicID}
用途:
- Event 详情
返回重点:
eventreleaseresolvedRelease
GET /events/{eventPublicID}/play
鉴权:
- Bearer token
用途:
- 活动详情页 / 开始前准备页聚合
返回重点:
eventreleaseresolvedReleaseplay.canLaunchplay.primaryActionplay.launchSourceplay.ongoingSessionplay.recentSession
POST /events/{eventPublicID}/launch
鉴权:
- Bearer token
用途:
- 基于当前 event 的可启动 release 创建一局 session
请求体重点:
releaseIdclientTypedeviceKey
返回重点:
launch.sourcelaunch.resolvedReleaselaunch.configlaunch.business.sessionIdlaunch.business.sessionToken
GET /events/{eventPublicID}/config-sources
鉴权:
- Bearer token
用途:
- 查看某个 event 的 source config 列表
GET /config-sources/{sourceID}
鉴权:
- Bearer token
用途:
- 查看单条 source config 明细
GET /config-builds/{buildID}
鉴权:
- Bearer token
用途:
- 查看单次 build 明细
5. Session
GET /sessions/{sessionPublicID}
鉴权:
- Bearer token
用途:
- 查询一局详情
返回重点:
sessioneventresolvedRelease
POST /sessions/{sessionPublicID}/start
鉴权:
sessionToken
用途:
- 将 session 从
launched推进到running
补充约束:
- 幂等
- 重复调用时:
launched会推进到runningrunning或已终态直接返回当前 session
POST /sessions/{sessionPublicID}/finish
鉴权:
sessionToken
用途:
- 结束一局
- 同时沉淀结果摘要
当前结束语义:
finished:正常完成failed:超时或规则失败cancelled:主动退出或放弃恢复
补充约束:
- 幂等
- 已终态重复调用直接返回当前 session / result
finish(cancelled)是当前“放弃恢复”的官方后端语义- 同一局旧
sessionToken在finish(cancelled)场景允许继续使用
请求体重点:
sessionTokenstatussummary.finalDurationSecsummary.finalScoresummary.completedControlssummary.totalControlssummary.distanceMeterssummary.averageSpeedKmhsummary.maxHeartRateBpm
GET /me/sessions
鉴权:
- Bearer token
用途:
- 查询用户最近 session
6. Result
GET /sessions/{sessionPublicID}/result
鉴权:
- Bearer token
用途:
- 查询单局结果页数据
返回重点:
sessionresult
session 中会带:
releaseIdconfigLabel
GET /me/results
鉴权:
- Bearer token
用途:
- 查询用户最近结果列表
7. Profile
GET /me
鉴权:
- Bearer token
用途:
- 当前用户基础信息
GET /me/profile
鉴权:
- Bearer token
用途:
- “我的页”聚合接口
返回重点:
userbindingsrecentSessions
8. Dev
POST /dev/bootstrap-demo
环境:
- 仅 non-production
用途:
- 自动准备 demo tenant / channel / event / release / card
GET /dev/workbench
环境:
- 仅 non-production
用途:
- 后端自带 API 测试面板
当前支持:
- bootstrap
- auth
- entry/home
- event/play/launch
- session start/finish/detail
- result 查询
- profile 查询
- quick flows
- scenarios
- request history
- curl 导出
GET /dev/config/local-files
环境:
- 仅 non-production
用途:
- 列出本地配置目录中的 JSON 文件
POST /dev/events/{eventPublicID}/config-sources/import-local
环境:
- 仅 non-production
用途:
- 从本地配置目录导入 source config
请求体重点:
fileNamenotes
POST /dev/config-builds/preview
环境:
- 仅 non-production
用途:
- 基于 source config 生成 preview build
请求体重点:
sourceId
POST /dev/config-builds/publish
环境:
- 仅 non-production
用途:
- 将成功的 preview build 发布成正式 release
- 自动切换
event.current_release_id
请求体重点:
buildId
返回重点:
release.releaseIdrelease.manifestUrlrelease.configLabel
9. Admin 资源对象
说明:
- 当前是后台第一版的最小对象接口
- 先只做 Bearer 鉴权
- 暂未接正式 RBAC / 管理员权限模型
GET /admin/maps
鉴权:
- Bearer token
用途:
- 获取地图对象列表
POST /admin/maps
鉴权:
- Bearer token
用途:
- 新建地图对象
请求体重点:
codenamestatusdescription
GET /admin/maps/{mapPublicID}
鉴权:
- Bearer token
用途:
- 获取地图对象详情和版本列表
POST /admin/maps/{mapPublicID}/versions
鉴权:
- Bearer token
用途:
- 新建地图版本
请求体重点:
versionCodemapmetaUrltilesRootUrlstatuspublishedAssetRootboundsmetadatasetAsCurrent
GET /admin/playfields
鉴权:
- Bearer token
用途:
- 获取赛场 / KML 对象列表
POST /admin/playfields
鉴权:
- Bearer token
用途:
- 新建赛场对象
请求体重点:
codenamekindstatusdescription
GET /admin/playfields/{playfieldPublicID}
鉴权:
- Bearer token
用途:
- 获取赛场对象详情和版本列表
POST /admin/playfields/{playfieldPublicID}/versions
鉴权:
- Bearer token
用途:
- 新建赛场版本
请求体重点:
versionCodesourceTypesourceUrlcontrolCountstatuspublishedAssetRootboundsmetadatasetAsCurrent
GET /admin/resource-packs
鉴权:
- Bearer token
用途:
- 获取资源包对象列表
POST /admin/resource-packs
鉴权:
- Bearer token
用途:
- 新建资源包对象
请求体重点:
codenamestatusdescription
GET /admin/resource-packs/{resourcePackPublicID}
鉴权:
- Bearer token
用途:
- 获取资源包对象详情和版本列表
POST /admin/resource-packs/{resourcePackPublicID}/versions
鉴权:
- Bearer token
用途:
- 新建资源包版本
请求体重点:
versionCodecontentEntryUrlaudioRootUrlthemeProfileCodestatuspublishedAssetRootmetadatasetAsCurrent
GET /admin/events
鉴权:
- Bearer token
用途:
- 获取后台 Event 列表
POST /admin/events
鉴权:
- Bearer token
用途:
- 新建后台 Event
请求体重点:
tenantCodeslugdisplayNamesummarystatus
GET /admin/events/{eventPublicID}
鉴权:
- Bearer token
用途:
- 获取后台 Event 详情
- 返回最新 source config 摘要
PUT /admin/events/{eventPublicID}
鉴权:
- Bearer token
用途:
- 更新 Event 基础信息
请求体重点:
tenantCodeslugdisplayNamesummarystatus
POST /admin/events/{eventPublicID}/source
鉴权:
- Bearer token
用途:
- 用地图版本、赛场版本、资源包版本组装一版 source config
- 直接落到现有
event_config_sources
请求体重点:
map.mapIdmap.versionIdplayfield.playfieldIdplayfield.versionIdresourcePack.resourcePackIdresourcePack.versionIdgameModeCoderouteCodeoverridesnotes
GET /admin/events/{eventPublicID}/pipeline
鉴权:
- Bearer token
用途:
- 从后台视角聚合查看某个 event 的:
- sources
- builds
- releases
- current release
POST /admin/sources/{sourceID}/build
鉴权:
- Bearer token
用途:
- 基于某个 source 生成 preview build
GET /admin/builds/{buildID}
鉴权:
- Bearer token
用途:
- 查看某次 build 详情
POST /admin/builds/{buildID}/publish
鉴权:
- Bearer token
用途:
- 将某次成功 build 发布成正式 release
- 自动切换 event 当前 release
POST /admin/events/{eventPublicID}/rollback
鉴权:
- Bearer token
用途:
- 将 event 当前 release 显式切回某个已发布 release
请求体重点:
releaseId