接口清单.md 9.3 KB

API 清单

文档版本:v1.0 最后更新:2026-04-02 09:01:17

本文档只记录当前 backend 已实现接口,不写未来规划接口。

1. Health

GET /healthz

用途:

  • 健康检查

2. Auth

POST /auth/sms/send

用途:

  • 发登录验证码
  • 发绑定手机号验证码

核心参数:

  • countryCode
  • mobile
  • clientType
  • deviceKey
  • scene

POST /auth/login/sms

用途:

  • APP 手机号验证码登录

返回重点:

  • user
  • tokens.accessToken
  • tokens.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

查询参数:

  • channelCode
  • channelType
  • platformAppId
  • tenantCode

GET /home

用途:

  • 返回入口首页卡片

GET /cards

用途:

  • 只返回卡片列表

GET /me/entry-home

鉴权:

  • Bearer token

用途:

  • 首页聚合接口

返回重点:

  • user
  • tenant
  • channel
  • cards
  • ongoingSession
  • recentSession

4. Event

GET /events/{eventPublicID}

用途:

  • Event 详情

返回重点:

  • event
  • release
  • resolvedRelease

GET /events/{eventPublicID}/play

鉴权:

  • Bearer token

用途:

  • 活动详情页 / 开始前准备页聚合

返回重点:

  • event
  • release
  • resolvedRelease
  • play.canLaunch
  • play.primaryAction
  • play.launchSource
  • play.ongoingSession
  • play.recentSession

POST /events/{eventPublicID}/launch

鉴权:

  • Bearer token

用途:

  • 基于当前 event 的可启动 release 创建一局 session

请求体重点:

  • releaseId
  • clientType
  • deviceKey

返回重点:

  • launch.source
  • launch.resolvedRelease
  • launch.config
  • launch.business.sessionId
  • launch.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

用途:

  • 查询一局详情

返回重点:

  • session
  • event
  • resolvedRelease

POST /sessions/{sessionPublicID}/start

鉴权:

  • sessionToken

用途:

  • 将 session 从 launched 推进到 running

补充约束:

  • 幂等
  • 重复调用时:
    • launched 会推进到 running
    • running 或已终态直接返回当前 session

POST /sessions/{sessionPublicID}/finish

鉴权:

  • sessionToken

用途:

  • 结束一局
  • 同时沉淀结果摘要

当前结束语义:

  • finished:正常完成
  • failed:超时或规则失败
  • cancelled:主动退出或放弃恢复

补充约束:

  • 幂等
  • 已终态重复调用直接返回当前 session / result
  • finish(cancelled) 是当前“放弃恢复”的官方后端语义
  • 同一局旧 sessionTokenfinish(cancelled) 场景允许继续使用

请求体重点:

  • sessionToken
  • status
  • summary.finalDurationSec
  • summary.finalScore
  • summary.completedControls
  • summary.totalControls
  • summary.distanceMeters
  • summary.averageSpeedKmh
  • summary.maxHeartRateBpm

GET /me/sessions

鉴权:

  • Bearer token

用途:

  • 查询用户最近 session

6. Result

GET /sessions/{sessionPublicID}/result

鉴权:

  • Bearer token

用途:

  • 查询单局结果页数据

返回重点:

  • session
  • result

session 中会带:

  • releaseId
  • configLabel

GET /me/results

鉴权:

  • Bearer token

用途:

  • 查询用户最近结果列表

7. Profile

GET /me

鉴权:

  • Bearer token

用途:

  • 当前用户基础信息

GET /me/profile

鉴权:

  • Bearer token

用途:

  • “我的页”聚合接口

返回重点:

  • user
  • bindings
  • recentSessions

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

请求体重点:

  • fileName
  • notes

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.releaseId
  • release.manifestUrl
  • release.configLabel

9. Admin 资源对象

说明:

  • 当前是后台第一版的最小对象接口
  • 先只做 Bearer 鉴权
  • 暂未接正式 RBAC / 管理员权限模型

GET /admin/maps

鉴权:

  • Bearer token

用途:

  • 获取地图对象列表

POST /admin/maps

鉴权:

  • Bearer token

用途:

  • 新建地图对象

请求体重点:

  • code
  • name
  • status
  • description

GET /admin/maps/{mapPublicID}

鉴权:

  • Bearer token

用途:

  • 获取地图对象详情和版本列表

POST /admin/maps/{mapPublicID}/versions

鉴权:

  • Bearer token

用途:

  • 新建地图版本

请求体重点:

  • versionCode
  • mapmetaUrl
  • tilesRootUrl
  • status
  • publishedAssetRoot
  • bounds
  • metadata
  • setAsCurrent

GET /admin/playfields

鉴权:

  • Bearer token

用途:

  • 获取赛场 / KML 对象列表

POST /admin/playfields

鉴权:

  • Bearer token

用途:

  • 新建赛场对象

请求体重点:

  • code
  • name
  • kind
  • status
  • description

GET /admin/playfields/{playfieldPublicID}

鉴权:

  • Bearer token

用途:

  • 获取赛场对象详情和版本列表

POST /admin/playfields/{playfieldPublicID}/versions

鉴权:

  • Bearer token

用途:

  • 新建赛场版本

请求体重点:

  • versionCode
  • sourceType
  • sourceUrl
  • controlCount
  • status
  • publishedAssetRoot
  • bounds
  • metadata
  • setAsCurrent

GET /admin/resource-packs

鉴权:

  • Bearer token

用途:

  • 获取资源包对象列表

POST /admin/resource-packs

鉴权:

  • Bearer token

用途:

  • 新建资源包对象

请求体重点:

  • code
  • name
  • status
  • description

GET /admin/resource-packs/{resourcePackPublicID}

鉴权:

  • Bearer token

用途:

  • 获取资源包对象详情和版本列表

POST /admin/resource-packs/{resourcePackPublicID}/versions

鉴权:

  • Bearer token

用途:

  • 新建资源包版本

请求体重点:

  • versionCode
  • contentEntryUrl
  • audioRootUrl
  • themeProfileCode
  • status
  • publishedAssetRoot
  • metadata
  • setAsCurrent

GET /admin/events

鉴权:

  • Bearer token

用途:

  • 获取后台 Event 列表

POST /admin/events

鉴权:

  • Bearer token

用途:

  • 新建后台 Event

请求体重点:

  • tenantCode
  • slug
  • displayName
  • summary
  • status

GET /admin/events/{eventPublicID}

鉴权:

  • Bearer token

用途:

  • 获取后台 Event 详情
  • 返回最新 source config 摘要

PUT /admin/events/{eventPublicID}

鉴权:

  • Bearer token

用途:

  • 更新 Event 基础信息

请求体重点:

  • tenantCode
  • slug
  • displayName
  • summary
  • status

POST /admin/events/{eventPublicID}/source

鉴权:

  • Bearer token

用途:

  • 用地图版本、赛场版本、资源包版本组装一版 source config
  • 直接落到现有 event_config_sources

请求体重点:

  • map.mapId
  • map.versionId
  • playfield.playfieldId
  • playfield.versionId
  • resourcePack.resourcePackId
  • resourcePack.versionId
  • gameModeCode
  • routeCode
  • overrides
  • notes

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