伟大航路客户端协议清单 ¶
文档目的 ¶
本文件单独整理“伟大航路/盐场升级赛制”在客户端中直接出现的协议。
这里的“客户端协议”指:
- 客户端实际发起的请求
- 客户端注册的响应结构
- 客户端直接依赖的协议字段
范围包含 4 类:
LegionServiceLegionWarServiceSaltRoadService- 伟大航路阶段仍然复用的旧军团战协议
不包含内容:
- 战场内大量通用
WarService行军/战斗动作细节 - 与伟大航路无关的其他系统协议
一、总览 ¶
当前客户端侧与伟大航路直接相关的协议可以分为三层:
- 入口与阶段层
- 查询军团信息
- 查询当前战场
- 报名
- 查询当前 warType / mapType
- 排行与资格层
- 晋级名单
- 小组排行
- 总排行
- 黄金分组列表
- 历史兼容层
- 灰盐岛旧扩展周赛协议
- 月赛/直播/战报协议
二、协议闭合度分级 ¶
为了区分“已经能直接指导实现”和“只是知道有这个协议”,本文件把协议反推程度分成 3 级:
A级:高闭合- 请求参数、响应主结构、调用点、用途都已经比较完整
B级:中闭合- 请求和用途基本明确,但响应细节或边界语义还不完整
C级:低闭合- 当前只确认了命令名、注册结构或零散调用点
当前判断如下:
A级legion_getinfolegion_getbattlefieldsaltroad_getsaltroadwargroupranksaltroad_getsaltroadwartotalranksaltroad_getwartypesaltroad_getgoldenbflist
B级legion_signuplegion_getopponentlegion_getwarranklegion_claimwarrankrewardsaltroad_getgreyriselegionssaltroad_getwarranklegion_getbattlefieldidlegionwar_getdetailslegionwar_getbattlerecord
C级saltroad_getsaltroadwarlegionslegionwar_getexwarlegionslegionwar_getexwarweekranklegionwar_choiceexweekmaplegionwar_getexweekmapsigninfolegionwar_getgoldmonthwarrank
三、入口与阶段层协议 ¶
1. legion_getinfo ¶
- 服务:
LegionService.getInfo - 命令名:
legion_getinfo - 调用点:
- 请求参数:
{}空请求
- 响应结构:
Legion_GetInfoResp- 定义见 data-index.js
客户端已确认依赖字段:
infofirstMonthDateisOpenExWarisOpenSaltRoadWarlegionWarTypeislandTypeexWeekRiseDateisInExWeekisInExMonthisInExGoldMonthemLegionWarMapmapListbigServerWarZonebigServerWarZoneTimeserverViewId
其中 mapList 元素结构为:
GDNewLegionWarMapMsg- 定义见 data-index.js
- 字段:
legionWarMapwarDatelegionWarType
用途:
- 初始化伟大航路 UI 总状态
- 决定当前是否处于周赛/进阶赛/月赛/黄金阶段
- 决定当前岛屿和可选地图
结论:
- 这是伟大航路最核心的入口协议。
- 服务端后续实现必须优先对齐它。
字段细化表:
| 字段 | 客户端用途 | 实现优先级 |
|---|---|---|
isOpenSaltRoadWar |
是否启用伟大航路入口与页面分支 | 高 |
legionWarType |
当前阶段判定 | 高 |
islandType |
当前岛屿判定 | 高 |
exWeekRiseDate |
灰盐岛进阶提示与阶段过渡 | 高 |
isInExWeek |
是否处于进阶周赛链路 | 高 |
isInExMonth |
是否处于普通月赛链路 | 高 |
isInExGoldMonth |
是否处于黄金链路 | 高 |
emLegionWarMap |
当前地图/选图态 | 中 |
mapList[] |
日期到 warType / mapType 的映射 | 高 |
服务端现状判断:
- 旧
legion_getinfo主体已有 - 伟大航路字段契约已被客户端固定使用
- 当前服务端尚未看到完整对齐这些字段的统一生成逻辑
2. legion_signup ¶
- 服务:
LegionService.signup - 命令名:
legion_signup - 调用点:
- 请求参数:
{}空请求
- 响应结构:
- 客户端未见伟大航路专用字段扩展
用途:
- 当前军团报名当前阶段比赛
- 也是锁成员链路的入口之一
结论:
- 当前服务端虽然已有旧盐场报名,但未形成伟大航路阶段化资格模型。
补充判断:
- 客户端请求体为空,说明报名落到哪一场完全由服务端决定
- 也就是说,服务端报名逻辑至少要隐式绑定:
- 当前岛屿
- 当前阶段
- 当前战场
- 当前锁成员快照
3. legion_getbattlefield ¶
- 服务:
LegionService.getBattlefield - 命令名:
legion_getbattlefield - 调用点:
- 请求参数:
{}空请求
- 响应结构:
GDBattlefieldInfo- 定义见 data-index.js
客户端依赖字段:
phasetypesubTypelegionWarMapTypesignupStartTimesignupEndTimereadyTimestartTimeendTimebattlefieldIdbattlefieldNumbercanEnterWarsiddomainName
用途:
- 获取当前阶段战场信息
- 控制是否可进入战场
- 控制客户端倒计时与地图加载
结论:
- 伟大航路服务端必须扩展这份响应,而不是继续固定旧周赛值。
字段细化表:
| 字段 | 客户端用途 | 当前服务端情况 |
|---|---|---|
type |
战场主类型 | 已有,但固定旧口径 |
subType |
附加战场类型 | 已有字段位 |
legionWarMapType |
地图资源加载 | 配置有,运行时未切 |
signupStartTime |
报名窗开始 | 已有固定模板 |
signupEndTime |
报名窗结束 | 已有固定模板 |
readyTime |
提前进场时间 | 已有固定模板 |
startTime |
开战时间 | 已有固定模板 |
endTime |
结束时间 | 已有固定模板 |
battlefieldId |
战场实例 ID | 已有,但仍固定 LW_WEEK-* |
battlefieldNumber |
场次编号 | 已有字段位 |
canEnterWar |
是否可进场/是否锁成员 | 客户端强依赖,服务端缺主链实现 |
sid / domainName |
路由到战场服 | 已有字段位 |
4. legion_getbattlefieldid ¶
- 服务:
LegionService.getBattleFieldId - 命令名:
legion_getbattlefieldid - 调用点:
- 请求参数:
date
- 典型调用:
{date: "yyyy/MM/dd"}
- 响应结构:
Legion_GetBattleFieldIdResp
- 用途:
- 月赛/直播/战报类功能通过日期换取
battleFieldId
- 月赛/直播/战报类功能通过日期换取
结论:
- 这是伟大航路外围功能仍依赖的兼容协议。
补充判断:
- 这个协议不是伟大航路主调度核心
- 但很多外围页仍然是
date -> battlefieldId -> 详情/排行/直播这条链
5. legion_getwarrank ¶
- 服务:
LegionService.getWarRank - 命令名:
legion_getwarrank - 调用点:
- 请求参数:
date
- 响应结构:
- 旧军团战排行响应
- 用途:
- 普通阶段排行展示
说明:
- 黄金阶段排行已切到
SaltRoadService.getWarRank - 这里更偏兼容旧军团战/月赛排行
实现建议:
- 普通月赛和旧页面先继续兼容这个协议
- 黄金分组排行则单独走
saltroad_getwarrank
6. legion_claimwarrankreward ¶
- 服务:
LegionService.claimWarRankReward - 命令名:
legion_claimwarrankreward - 调用点:
- 请求参数:
date
- 响应字段:
reward
- 用途:
- 领取排行奖励
结论:
- 奖励协议仍在走旧军团战服务,不是
SaltRoadService新域。
7. legion_getopponent ¶
- 服务:
LegionService.getOpponent - 命令名:
legion_getopponent - 调用点:
- 请求参数:
phasebattlefieldId
- 典型调用:
{phase: e, battlefieldId: t}{phase: "", battlefieldId: ""}
- 用途:
- 查询对手列表
- 月赛/阶段赛对阵展示
补充判断:
- 这是典型“旧协议仍承接新赛程页面”的兼容接口
- 后续需要进一步确认不同阶段返回的对手池是否共口径
四、SaltRoadService 协议 ¶
这是伟大航路新增最多的一组协议。
服务注册见:
1. saltroad_getgreyriselegions ¶
- 服务:
SaltRoadService.getGreyRiseLegions - 命令名:
saltroad_getgreyriselegions - 调用点:
- 请求参数:
{}空请求
- 响应结构:
SaltRoad_GetGreyRiseLegionsResp- 定义见 data-index.js
- 字段:
legionList[]- 元素类型:
GDSaltRoadWarMsg
用途:
- 展示灰盐岛晋级名单
补充判断:
- 该协议更像“晋级名单页专用接口”
- 不像通用总榜接口
2. saltroad_getsaltroadwargrouprank ¶
- 服务:
SaltRoadService.getSaltRoadWarGroupRank - 命令名:
saltroad_getsaltroadwargrouprank - 调用点:
- 请求参数:
datestartRankendRank
- 响应结构:
SaltRoad_GetSaltRoadWarGroupRankResp- 定义见 data-index.js
- 字段:
legionList[]selfRankInforiseNum
用途:
- 查询当前小组排行
- 决定当前小组晋级线
字段细化表:
| 字段 | 用途 |
|---|---|
legionList[] |
小组榜单列表 |
selfRankInfo |
当前军团的小组内排行与积分 |
riseNum |
小组晋级线 |
补充说明:
- 客户端既用它展示周赛小组排行,也用它展示月赛小组排行
date是小组排行切换的关键索引
3. saltroad_getsaltroadwartotalrank ¶
- 服务:
SaltRoadService.getSaltRoadWarTotalRank - 命令名:
saltroad_getsaltroadwartotalrank - 调用点:
- 请求参数:
datestartRankendRank
- 响应结构:
SaltRoad_GetSaltRoadWarTotalRankResp- 定义见 data-index.js
- 字段:
legionList[]rankCntselfRankInforiseNumblueRiseRound
用途:
- 查询总榜排行
- 青铜岛动态晋级人数展示
- 黄金阶段总榜展示
字段细化表:
| 字段 | 用途 |
|---|---|
legionList[] |
总榜列表 |
rankCnt |
总榜总人数 |
selfRankInfo |
当前军团总榜信息 |
riseNum |
当前总榜晋级线 |
blueRiseRound |
青铜岛动态档位 |
补充说明:
- 黄金阶段客户端还会从
selfRankInfo.sRGoldenOut判断是否已淘汰 - 这个协议是青铜、秘蓝、月宫、黄金都会用到的总榜协议
4. saltroad_getwartype ¶
- 服务:
SaltRoadService.getWarType - 命令名:
saltroad_getwartype - 调用点:
- 请求参数:
date
- 响应结构:
SaltRoad_GetWarTypeResp- 定义见 data-index.js
- 字段:
warType
用途:
- 通过日期反查当日阶段类型
- 用于黄金阶段和历史阶段页面判断
补充说明:
- 这是赛程态的轻量查询接口
- 适合客户端按日期切历史 tab 时快速判断阶段,而不是重拉整份
legion_getinfo
5. saltroad_getgoldenbflist ¶
- 服务:
SaltRoadService.getGoldenBfList - 命令名:
saltroad_getgoldenbflist - 调用点:
- 请求参数:
date
- 响应结构:
SaltRoad_GetGoldenBfListResp- 定义见 data-index.js
- 字段:
selfBfIdbfList[]bfList[]元素类型:GDSaltRoadGoldenBfInfo
GDSaltRoadGoldenBfInfo 字段:
bfIdlegionWarType
用途:
- 查询黄金天宫各分组战场列表
- 标识当前俱乐部所在组
字段细化表:
| 字段 | 用途 |
|---|---|
selfBfId |
当前军团所在黄金分组 |
bfList[] |
当期所有黄金战场 |
bfList[].bfId |
具体分组战场 ID |
bfList[].legionWarType |
胜者赛 / 败者赛 / 总决赛 |
补充说明:
- 这个协议是黄金双败页面成立的关键
- 没有它,客户端无法正确渲染黄金当前周的分组杯位
6. saltroad_getwarrank ¶
- 服务:
SaltRoadService.getWarRank - 命令名:
saltroad_getwarrank - 调用点:
- 请求参数:
bfId
- 响应结构:
SaltRoad_GetWarRankResp- 定义见 data-index.js
- 字段:
legionRankList[]
用途:
- 查询黄金单个战场/单个分组排行
7. saltroad_getsaltroadwarlegions ¶
- 服务:
SaltRoadService.getSaltRoadWarLegions - 命令名:
saltroad_getsaltroadwarlegions - 服务注册见:
- 响应结构:
SaltRoad_GetSaltRoadWarLegionsResp- 定义见 data-index.js
- 字段:
legionList[]
当前状态:
- 在当前客户端源码中未检索到明确调用点。
结论:
- 这是已注册但当前反推中尚未看到实际页面消费的协议。
五、LegionWarService 兼容协议 ¶
这部分协议不是 SaltRoadService,但伟大航路页面仍在使用。
1. legionwar_getexwarlegions ¶
- 服务:
LegionWarService.getExWarLegions - 命令名:
legionwar_getexwarlegions - 调用点:
- 请求参数:
{}空请求
- 响应结构:
LegionWar_GetExWarLegionsResp
用途:
- 老扩展赛阶段战队/军团列表
- 直播、竞猜等外围功能仍使用它
补充判断:
- 伟大航路上线后,外围模块没有完全迁到
SaltRoadService - 因此这些协议短期内仍然不能直接删掉
2. legionwar_getexwarweekrank ¶
-
服务:
LegionWarService.getExWarWeekRank -
命令名:
legionwar_getexwarweekrank -
调用点:
-
请求参数:
startRankendRank
-
用途:
-
灰盐岛/旧扩展周赛排名
当前判断:
- 更像旧扩展周赛兼容接口
- 伟大航路正式排行主链已经切到
SaltRoadService
3. legionwar_choiceexweekmap ¶
- 服务:
LegionWarService.choiceExWeekMap - 命令名:
legionwar_choiceexweekmap - 调用点:
- 请求参数:
emLegionWarMap
- 响应结构:
LegionWar_ChoiceExWeekMapResp
用途:
- 选择扩展周赛地图
当前判断:
- 这是灰盐岛/旧扩展赛的选图遗留接口
- 与五岛固定赛程并不完全同构
4. legionwar_getexweekmapsigninfo ¶
-
服务:
LegionWarService.getExWeekMapSignInfo -
命令名:
legionwar_getexweekmapsigninfo -
调用点:
-
请求参数:
{}空请求
-
用途:
-
获取扩展周赛选图报名信息
当前判断:
- 可能只服务于旧选图 UI
- 是否还参与伟大航路主链,需要后续进一步确认
5. legionwar_getgoldmonthwarrank ¶
-
服务:
LegionWarService.getGoldMonthWarRank -
命令名:
legionwar_getgoldmonthwarrank -
调用点:
-
请求参数:
startRankendRank
-
用途:
-
旧黄金月赛排行
当前判断:
- 这是旧黄金月赛遗留接口
- 新黄金天宫主链更依赖
SaltRoadService
6. legionwar_getdetails ¶
-
服务:
LegionWarService.getDetails -
命令名:
legionwar_getdetails -
调用点:
-
请求参数:
date
-
响应结构:
LegionWar_GetDetailsResp
-
用途:
-
战报详情、阶段详情页
7. legionwar_getbattlerecord ¶
-
服务:
LegionWarService.getBattleRecord -
命令名:
legionwar_getbattlerecord -
调用点:
-
请求参数:
recordId
-
响应结构:
LegionWar_GetBattleRecordResp
-
用途:
-
查看具体战报
六、客户端直接依赖的数据结构 ¶
除了协议名本身,客户端还依赖这些结构体字段。
1. GDBattlefieldInfo ¶
定义见:
字段:
phasetypesubTypelegionWarMapTypesignupStartTimesignupEndTimereadyTimestartTimeendTimebattlefieldIdbattlefieldNumbercanEnterWarsiddomainName
2. GDNewLegionWarMapMsg ¶
定义见:
字段:
legionWarMapwarDatelegionWarType
3. GDSaltRoadGoldenBfInfo ¶
定义见:
字段:
bfIdlegionWarType
4. GDSaltRoadWarMsg ¶
定义见:
字段:
sRGScoreArrsRBScoreArrsRKScoreArrsRTotalScoresRConfIdsRGroupRanksRGoldenOut
用途:
- 伟大航路排行、积分、黄金淘汰状态显示
字段语义细化:
| 字段 | 当前高可信语义 |
|---|---|
sRGScoreArr |
小组积分过程数组或分周积分数组 |
sRBScoreArr |
岛屿积分或阶段积分数组 |
sRKScoreArr |
排名/淘汰过程数组 |
sRTotalScore |
当前总积分 |
sRConfId |
当前排行或配置模板 ID |
sRGroupRank |
当前组内名次 |
sRGoldenOut |
黄金阶段是否已淘汰 |
说明:
- 3 个数组字段的精确业务语义还没有完全闭合
- 但服务端至少要保证字段存在、类型一致、长度语义自洽
七、请求参数近似草稿 ¶
下面这部分不是服务端现有协议定义,而是根据客户端调用方式整理的近似请求形态。
1. 空请求 ¶
{}
适用:
legion_getinfolegion_signuplegion_getbattlefieldsaltroad_getgreyriselegionslegionwar_getexwarlegionslegionwar_getexweekmapsigninfo
2. 日期查询 ¶
{
"date": "yyyy/MM/dd or yyMMdd"
}
适用:
legion_getbattlefieldidlegion_getwarranklegion_claimwarrankrewardsaltroad_getwartype
说明:
- 客户端混用了
yyyy/MM/dd与yyMMdd - 服务端实现时不能只假设一种日期格式
3. 排行分页 ¶
{
"date": "yyMMdd",
"startRank": 1,
"endRank": 100
}
适用:
saltroad_getsaltroadwargroupranksaltroad_getsaltroadwartotalrank
4. 黄金分组 ¶
{
"date": "yyMMdd"
}
适用:
saltroad_getgoldenbflist
{
"bfId": "battlefield-id"
}
适用:
saltroad_getwarrank
5. 兼容扩展赛 ¶
{
"startRank": 1,
"endRank": 100
}
适用:
legionwar_getexwarweekranklegionwar_getgoldmonthwarrank
{
"emLegionWarMap": 18
}
适用:
legionwar_choiceexweekmap
{
"recordId": "xxx"
}
适用:
legionwar_getbattlerecord
八、按实现重要性排序 ¶
如果站在服务端实现角度,这些协议的重要性可分为三档。
A. 必须先对齐 ¶
legion_getinfolegion_getbattlefieldlegion_signupsaltroad_getsaltroadwargroupranksaltroad_getsaltroadwartotalranksaltroad_getwartypesaltroad_getgoldenbflist
B. 第二阶段补齐 ¶
saltroad_getgreyriselegionssaltroad_getwarranklegion_getwarranklegion_claimwarrankrewardlegion_getopponent
C. 兼容与外围能力 ¶
legion_getbattlefieldidlegionwar_getexwarlegionslegionwar_getexwarweekranklegionwar_choiceexweekmaplegionwar_getexweekmapsigninfolegionwar_getgoldmonthwarranklegionwar_getdetailslegionwar_getbattlerecordsaltroad_getsaltroadwarlegions
九、当前反推状态 ¶
已确认 ¶
- 协议名
- 大多数请求参数
- 响应主结构
- 核心页面调用点
- 核心字段用途
部分确认 ¶
- 某些排行数组字段的精确业务语义
saltroad_getsaltroadwarlegions的实际页面消费- 个别兼容协议在伟大航路下的真实返回差异
尚未闭合 ¶
- 奖励邮件类协议的完整链路
- 异常分支协议
- 战场内动作协议与伟大航路赛程状态的联动细节
十、未确认项清单 ¶
下面这些内容已知存在,但目前还不能作为硬规则写死:
saltroad_getsaltroadwarlegions的真实页面用途GDSaltRoadWarMsg三个数组字段的精确业务语义- 旧
LegionWarService协议在新赛制下是否有特殊分支返回 - 奖励和邮件相关协议是否会带伟大航路专属字段
legion_getopponent在不同阶段返回对手集合的规则
十一、结论 ¶
当前客户端协议层已经足够说明:
- 伟大航路不是只新增几张图
- 客户端已经要求服务端同时提供:
- 赛程态
- 岛屿态
- 资格态
- 排行态
- 黄金专项态
因此,后续服务端实现如果只改 BuildWarInfo() 一层还不够,至少还要补:
Legion_GetInfoResp对应的伟大航路字段SaltRoadService这组排行与黄金协议- 旧
LegionWarService兼容链路与新赛程态的衔接
评论
请登录后发表评论。
暂无评论。成为第一个评论者!