tinker-manager API接口文档:开发者必备参考手册
tinker-manager API接口文档:开发者必备参考手册
【免费下载链接】tinker-manager微信tinker补丁管理,后端代码+客户端sdk项目地址: https://gitcode.com/gh_mirrors/ti/tinker-manager
tinker-manager是微信tinker补丁管理的后端代码与客户端SDK项目,提供了完整的补丁发布、更新和管理解决方案。本文档将详细介绍其API接口设计、核心功能与使用方法,帮助开发者快速集成热修复能力。
接口概览:核心功能全覆盖
tinker-manager的API系统采用REST风格设计,主要分为客户端接口和管理端接口两大模块。客户端接口负责补丁查询与状态上报,管理端接口则提供应用、版本和补丁的全生命周期管理。
图1:tinker-manager后台应用列表界面,支持多应用管理与补丁操作
客户端核心接口
| 接口路径 | 方法 | 功能描述 |
|---|---|---|
/api/patch | GET/POST | 获取最新补丁信息(支持灰度发布) |
/api/full_update | GET/POST | 查询全量更新信息 |
/api/report | GET/POST | 上报补丁加载结果 |
/health | GET | 服务健康检查 |
管理端核心接口
管理端接口位于./patchserver/patchserver-manager/src/main/java/com/dx168/patchserver/manager/web/ManagerController.java,主要包括:
- 应用管理:创建应用、版本管理
- 补丁操作:上传补丁、发布控制(灰度/全量)
- 设备管理:机型黑名单、渠道配置
快速上手:客户端接口实战
获取最新补丁(/api/patch)
该接口是客户端获取补丁的核心入口,支持灰度发布和全量更新判断。
请求参数:
appUid:应用唯一标识(必填)token:应用秘钥(必填)versionName:应用版本号(必填)tag:灰度发布标记(可选)platform:平台(Android/iOS)
响应示例:
{ "code": 0, "message": "success", "data": { "patchUid": "P20230724001", "downloadUrl": "https://example.com/patches/v1.0.1.patch", "hash": "a1b2c3d4e5f6...", "createdTime": "2023-07-24 10:30:00" }, "extra": { "needUpdate": true, "forceUpdate": false, "latestVersion": "1.0.2" } }代码位置:ApiController.java
补丁结果上报(/api/report)
客户端在加载补丁后必须调用此接口上报结果,便于后台统计补丁成功率。
关键参数:
patchUid:补丁唯一标识applyResult:加载结果(true/false)errorCode:错误码(失败时必填)deviceId:设备唯一标识
全量更新查询(/api/full_update)
当补丁无法解决问题时,可通过此接口获取全量更新信息:
// 全量更新逻辑核心代码 FullUpdateInfo fullUpdateInfo = apiService.findFullUpdateInfoByAppUid(appUid); if (fullUpdateInfo != null && fullUpdateInfo.getStatus() == FullUpdateInfo.STATUS_START) { Map<String,Object> extra = new HashMap<>(); extra.put("needUpdate", versionName.compareTo(fullUpdateInfo.getLatestVersion()) < 0); extra.put("forceUpdate", versionName.compareTo(fullUpdateInfo.getLowestSupportVersion()) < 0); // ... 构建下载链接与版本信息 }代码位置:ApiController.java
管理端接口:补丁生命周期控制
应用与版本管理
- 创建应用:通过
/app/create接口创建新应用,需提供应用名称、包名和描述 - 版本管理:使用
/app/create_version为应用添加版本,每个版本可关联多个补丁
补丁发布流程
- 上传补丁:通过
/patch/add接口上传.patch文件,支持最大文件限制由maxPatchSize配置 - 灰度发布:调用
/patch/gray_publish指定测试标签(tag),仅特定设备可见 - 全量发布:通过
/patch/normal_publish接口将补丁推送给所有用户 - 紧急停止:使用
/patch/stop_publish暂停补丁分发
设备控制能力
- 机型黑名单:通过正则表达式配置不支持的设备型号
- 渠道管理:配置不同渠道的分发策略,支持渠道专属更新
安全与鉴权:保障接口调用安全
所有接口均需通过token验证,客户端token生成规则为:
token = MD5(appUid + "_" + appInfo.getSecret())代码位置:ApiController.java
管理端接口则通过Session验证用户身份,确保只有授权管理员可进行敏感操作。
最佳实践:提升集成效率
- 客户端实现:建议在Application初始化时调用
/api/patch检查更新,非UI线程执行下载 - 灰度策略:新补丁先通过小比例灰度测试(如5%用户),收集上报数据后再全量发布
- 日志监控:利用
/patch/log接口定期分析补丁失败原因,重点关注errorCode和model字段
常见问题解答
Q:补丁下载失败如何处理?
A:检查downloadUrl有效性,确保网络权限配置正确,失败时可通过/api/report上报错误码404或500。
Q:如何实现强制更新?
A:在全量更新接口中设置forceUpdate: true,客户端收到后应阻断用户操作,引导至应用商店下载。
Q:灰度发布的标签如何管理?
A:通过管理端/tester/add接口创建测试标签,关联特定设备ID或用户群体。
通过本文档提供的接口指南,开发者可以快速集成tinker-manager的热修复能力,实现应用的无缝更新与问题修复。完整接口定义可参考源代码中的Controller实现,或通过/health接口检查服务状态。
【免费下载链接】tinker-manager微信tinker补丁管理,后端代码+客户端sdk项目地址: https://gitcode.com/gh_mirrors/ti/tinker-manager
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考