tinker-manager API接口文档:开发者必备参考手册

📅 2026/7/25 23:34:49 👁️ 阅读次数 📝 编程学习
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/patchGET/POST获取最新补丁信息(支持灰度发布)
/api/full_updateGET/POST查询全量更新信息
/api/reportGET/POST上报补丁加载结果
/healthGET服务健康检查

管理端核心接口

管理端接口位于./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

管理端接口:补丁生命周期控制

应用与版本管理

  1. 创建应用:通过/app/create接口创建新应用,需提供应用名称、包名和描述
  2. 版本管理:使用/app/create_version为应用添加版本,每个版本可关联多个补丁

补丁发布流程

  1. 上传补丁:通过/patch/add接口上传.patch文件,支持最大文件限制由maxPatchSize配置
  2. 灰度发布:调用/patch/gray_publish指定测试标签(tag),仅特定设备可见
  3. 全量发布:通过/patch/normal_publish接口将补丁推送给所有用户
  4. 紧急停止:使用/patch/stop_publish暂停补丁分发

设备控制能力

  • 机型黑名单:通过正则表达式配置不支持的设备型号
  • 渠道管理:配置不同渠道的分发策略,支持渠道专属更新

安全与鉴权:保障接口调用安全

所有接口均需通过token验证,客户端token生成规则为:

token = MD5(appUid + "_" + appInfo.getSecret())

代码位置:ApiController.java

管理端接口则通过Session验证用户身份,确保只有授权管理员可进行敏感操作。

最佳实践:提升集成效率

  1. 客户端实现:建议在Application初始化时调用/api/patch检查更新,非UI线程执行下载
  2. 灰度策略:新补丁先通过小比例灰度测试(如5%用户),收集上报数据后再全量发布
  3. 日志监控:利用/patch/log接口定期分析补丁失败原因,重点关注errorCodemodel字段

常见问题解答

Q:补丁下载失败如何处理?
A:检查downloadUrl有效性,确保网络权限配置正确,失败时可通过/api/report上报错误码404500

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),仅供参考