跳转至正文

Capgo 公开 API 列表:完整开发者参考

获取完整的 Capgo 公共 API 列表,包含端点详情、认证方式、请求示例以及针对 CapacitorJS Live Update 的集成指南。

Capgo 公开 API 列表:完整开发者参考

你很可能正盯着一条手动运行的部署流水线,一旦团队需要可重复的发布,它就显得脆弱不堪。开发者创建一个 bundle,从笔记本电脑上传,检查 dashboard,移动 channel,然后等待 adoption 数据。这种流程或许能撑住一个小项目,但当多个应用、环境和部署任务共享同一套基础设施时,它带来了本可避免的风险。

一份有用的公共 API 列表应该回答的不仅仅是“有哪些端点?”。它应该展示认证、资源标识符、发布状态、配额、headers、重试机制以及批量工作流是如何协同工作的。本指南从运维角度切入 Capgo API,提供适用于构建 CI/CD 自动化而非孤立测试请求的 Capacitor 团队的实践模式。

目录

了解 Capgo API 身份验证

首次集成时最常见的错误,是发送了有效请求但凭据格式不对。从 dashboard 复制的 key 并不自动就是 bearer token;如果请求省略了 Authorization header 或使用了错误的 scheme,bearer token 也就毫无用处。服务器会在检查 endpoint、payload 或 app identifier 之前就返回认证失败。

先确认当前 Capgo API 文档中这个凭据叫什么,然后原样复现其示例请求。在典型的 bearer token 请求中,authorization header 的格式如下:

Authorization: Bearer YOUR_TOKEN

在本地测试时,将凭证存储在环境变量中。在 CI/CD 中,通过平台的密钥存储注入,而不是提交到仓库、放入移动 bundle 或添加到查询字符串中。移动应用不应包含管理凭证,因为任何发送到设备上的内容最终都可能被检查。

一个人正在白色书桌上的笔记本电脑上工作,同时使用机械键盘打字。

分离身份与授权

身份认证回答的是谁在发起请求。授权回答的是该身份可以更改什么。在设计部署服务时,请将这两者视为独立的检查。

个人密钥在探索时可能很方便,但它会将生产自动化与一个人的账户耦合在一起。对于共享 pipeline,团队管理的密钥更为合适,前提是组织可以在不中断无关任务的情况下撤销和替换它。如果 dashboard 和权限模型支持这种分离,请为开发、预发布和生产工作流使用不同的凭证。

在调用发布端点之前,测试一个低风险的读取操作。确认:

  • 主机正确: 使用为当前活动环境记录的 API 基础 URL。
  • 请求头完整: 包含所需的授权方案和一个 Accept 用于 JSON 响应的请求头。
  • 请求体编码正确: 发送 Content-Type: application/json 仅当请求包含 JSON 时。
  • 权限范围足够: 能读取应用元数据的凭据,未必有权创建或分发版本。
  • 响应会被安全记录: 记录状态码和请求标识符,但需脱敏密钥、token、bundle 内容及敏感设备数据。

公开的 API 目录已从简单的清单发展为运维发现工具。 ProgrammableWeb 的历史记录 描述了一个目录,其 API 数量在 2018 年 1 月突破 19,000 个,,放在……之后 2017 年新增了 2,294 个 API, 并且自 2014 年 1 月以来 平均每年新增超过 2,000 个。这段历史解释了为什么现代公开的 API 列表必须帮助工程师评估集成行为,而不仅仅是查找 URL。

客户端访问控制的相关注意事项,请参阅 Capgo 应用授权模式。这里的原则是一致的:将管理凭据保留在受信任的服务器上,审慎定义权限,并确保授权失败时易于诊断。

生成您的 API 凭据

凭据创建应被视为一次访问管理变更,而非随意的设置步骤。dashboard 的具体标签可能会有所变化,因此请以当前的 Capgo 界面和文档为准,但整体工作流保持一致。

按用途创建密钥

进入组织或账号设置区域,找到 API 或开发者凭据界面,并选择创建密钥的操作。为密钥命名时请注明其用途,例如 staging 部署 pipeline 或 production 发布 worker。避免仅按个人身份命名,因为团队变动后所有权会变得模糊。

为该工作流选择可用的最小权限。仅读取部署状态的任务不应获得删除应用或修改 channel 的权限。如果界面提供组织级和应用级作用域,请优先选择仍能满足该任务需求的更小边界。

在 dashboard 显示 secret 时复制它。许多凭据系统仅在创建时显示完整值。将其存入 CI/CD secret manager,然后在 pipeline 内测试读取,且不要打印该值。本地 .env 文件在开发期间会很有帮助,但必须排除在版本控制之外,绝不能打包进 Capacitor 的 web 目录。

截图自 https://capgo.app

在不造成服务中断的情况下进行轮换

轮换凭据时请保留一段重叠期。先把替换凭据加入 secret store,部署使用它的 pipeline 配置,执行一次无害的认证读取,然后再撤销旧密钥。如果服务支持多个有效密钥,请保留旧值,直到所有 worker 和定时任务都完成迁移。

在团队中,应在内部访问登记表中记录密钥所有者、用途、环境、创建日期和撤销流程。不要把密钥本身写进该登记表。这样事件响应才切实可行,又不会让文档变成另一个密钥仓库。

本指南中介绍的 英国政府 API 标准 建议尽早设计 OpenAPI 文档、验证输入、拒绝未知属性、使用 TLS 1.2 或更高版本,并用 OAuth 2.0 做访问控制。即使集成使用 API 密钥,这些原则也很有用:先定义契约再构建自动化,拒绝非预期输入,并把传输安全当作必需项。

关于 pipeline 存储和轮换模式,请使用 Capgo 关于在 CI/CD pipeline 中管理 secrets 的指南.

应用管理核心端点

应用管理是后续所有操作的控制平面。创建发布、分配渠道、分发 bundle 以及诊断功能,都需要一个稳定的应用标识符。常见的错误是在每个任务中传递人类可读的应用名称,并假设其始终唯一。应一次性解析应用,持久化规范标识符,并在后续操作中使用该标识符。

生产环境集成应围绕以下四项能力来建模应用生命周期:

操作 HTTP 意图 集成关注点
列出应用 GET 分页、组织范围、稳定标识符
获取单个应用 GET 配置版本与部署关系
更新配置 PATCH 或文档中描述的更新方法 部分更改与完全替换
删除应用 DELETE 不可逆操作,审批与审计控制

不要根据博客文章或旧的 SDK 臆造端点路径。请阅读当前的机器可读定义,并基于该契约生成类型化客户端或请求封装。 OpenAPI 规范 描述了一种与编程语言无关的 HTTP API 格式,允许人员和工具在不检查源 code 或网络流量的情况下,发现端点、认证、请求模式、响应和行为。

构建标识符优先的工作流

部署 worker 在执行变更操作前应先执行读取操作:

  1. 解析组织和应用上下文。
  2. 获取应用记录并确认其属于预期账户。
  3. 将预期的平台和环境与返回的配置进行比较。
  4. 在任务状态中存储规范的应用标识符。
  5. 使用该标识符提交发布或配置变更。
  6. 持久化响应标识符,以便后续轮询和诊断。

此流程可避免一类代价高昂的错误:由于 pipeline 变量指向旧项目,导致有效密钥更新了错误的应用。在允许写入之前,请添加显式的环境断言,例如要求 staging 任务必须针对 staging 应用。

使用响应 schema 而非松散的 JSON 访问。如果 API 返回包含标识符、名称、状态和配置字段的应用对象,请验证任务所需的字段,并容忍无关的额外字段。拒绝未知的请求属性可防止意外发送拼写错误的配置键,而宽容的响应解析有助于客户端应对非破坏性的响应扩展。

在回滚设计中,将应用身份与发布身份分开。 Capgo 的版本控制和回滚文档 是相关的操作参考。回滚应选择已知良好的发布或 channel 状态,而不是凭记忆重建应用配置。

创建和管理 Release

生产发布可能在上传成功后失败。构建产物可能已正确存储,但处理仍未完成、尚未分配渠道,或符合条件的设备尚未收到更新。请将工作流视为一系列可观察的状态变化,并为每个操作配备持久标识符和重试计划。

准备 Release Payload

属性名、请求路径和必填字段请使用当前 Capgo schema。从名称相似的 endpoint 复制来的请求体,可能被部分接受,也可能因意外原因被拒绝。实际操作中,payload 包含三个部分:

  • 应用身份: 由相关 control-plane 操作返回的应用标识符。
  • 发布元数据: API 所需的版本、bundle identity、build context 和兼容性信息。
  • 分发意图: 发布操作支持时,对应的 channel 或 rollout context。

发送前先校验 bundle。检查 Capacitor build 是否包含预期的 web assets,版本是否与 CI 元数据匹配,并确保任务没有读取到尚未写完的文件。如果 API 接受 checksum,就在本地计算一个。在部署记录中保留 build URL、commit reference 和服务器下发的 release identifier,以便后续任务关联 upload、处理和分发事件。

可靠的操作流程如下:

  1. 在干净的 workspace 中构建应用。
  2. 运行单元测试、集成测试和平台相关检查。
  3. 通过文档所述的发布操作创建或 upload bundle。
  4. 轮询返回的 operation 或 release 资源,直到其达到终态。
  5. 将已完成的 release 关联到其目标 channel。
  6. 在提升版本前,检查 adoption 和 failure 信号。

上传响应仅确认服务已接收请求,不代表已送达用户。处理状态、设备资格、网络连接和 channel 成员资格仍决定更新是否能到达设备。

确保重试安全

超时无法判断服务器是拒绝了请求,还是在连接失败前已完成处理。因此,重新提交相同的 release 可能会创建重复或冲突的版本。当 Capgo 支持时,请使用幂等性键。如果没有该功能,在重试变更操作前,请先使用 release 元数据或客户端生成的 build 标识符进行查询。

批量上传需要项级别的状态。将每个 app 变体放入持久化队列,并独立记录其结果。Worker 重试时应仅选择未完成的项目,而不是在单个失败后重放整个批次。如果可用批量端点,请确认其响应是否包含每个项目的结果。一个聚合成功状态可能掩盖失败的变体,而一个聚合错误可能掩盖已完成的工作。

运维规则: 立即存储服务器的 release 标识符,然后在处理检查、channel 分配和诊断中引用该标识符。

速率限制同时影响上传和轮询。 API 速率限制指南 指出配额应反映正在执行的操作,且客户端需要可用的请求头和重试行为。对发布创建、状态轮询、搜索和敏感变更应用不同的处理策略。以上传速度重试的轮询循环可能会耗尽用于纠正操作的配额。

当返回速率限制头时,请读取它们;尊重服务器提供的重试间隔;若未提供,则使用递增延迟。添加抖动,以免多个 CI 工作节点同时重试。限制轮询次数,在达到终止状态时停止,并在移除凭据和令牌后,将最终响应体包含在 CI 日志中。如果某人取消部署,请记录操作者或自动化任务、当前发布状态,以及工件是否仍可用于稍后重试。

Channel 策略与发布模式

Channel 设计是发布治理决策,而不仅仅是命名练习。Staging、beta 和 production channel 服务于不同的受众,应拥有不同的晋级规则。正确的选择取决于 bundle 中剩余的不确定性程度,以及团队需要多快的反馈。

渠道 受众 需要验证的内容 晋级决策
Staging 环境 内部设备和测试账号 安装、迁移、原生兼容性、日志 技术检查通过
Beta 选定的早期访问用户 真实环境表现、支持反馈、更新采用率 无阻塞性回归
生产环境 普通用户 稳定性、诊断、回滚准备 发布负责人批准

Staging 通道应当是确定性的。指定已知的测试设备或账号,避免通道被随意改动,并让 CI 仅在必需检查通过后提升版本。当需要类生产流量时,Beta 很有用,但它需要明确的目标受众定义和用于上报故障的支持流程。生产环境应该平淡无奇:发布已通过前面的关卡,回滚目标明确,监控也已接入。

API 工作流应体现这些边界。Pipeline 可以只创建一次发布,将其分配到 Staging,并在验证后提升同一个发布对象。在不同通道之间重新构建会削弱可追溯性,因为团队测试的构建产物可能并不是分发给用户的那个。

当前公开的 API 生态系统也表明,维护工作与生态广度同样重要。 API 追踪器 展示了大量 API 和开发者资源,但围绕公开 API 汇总的评论也指出,当条目涵盖金融、政府、医疗、机器学习、天气和交通等领域时,会带来沉重的维护负担。Channel 目录也有同样的问题:条目过时、归属不清,会让大列表不如一个更小但持续维护的列表有用。

有关受控测试的实现细节,请参阅 带有 channels 的 Capgo staging 环境。核心模式是将 channel 的迁移变为一个带有审批边界的显式 API 操作,而不是允许任何 build job 直接写入生产环境。

监控与诊断端点

当 API 返回成功响应时,部署并未完成。只有当团队能够说明哪些设备发现、下载、安装了哪个 release,并持续正常运行,部署才算完成。这需要一个将 release 标识符、channel 成员关系、设备记录、logs 和采用数据连接起来的工作流。

首先在部署系统中建立关联记录。存储 app 标识符、release 标识符、channel、commit 引用、build 元数据、请求时间戳以及最终的 API 状态。收到支持报告时,运维人员应能从受影响的设备定位到其 channel 和 release,而无需在非结构化的 CI logs 中搜索。

先精确查询,再聚合

诊断端点通常支持按时间范围、channel、设备、平台或 release 进行过滤。请使用能直接回答当前问题的最窄过滤条件。针对整个安装基础的大范围查询速度更慢,更难解读,且更容易遇到分页或配额限制。

一个实用的调查顺序是:

  • Release 视图: 检查预期的 release 是否存在,并是否已到达目标 channel。
  • Adoption 视图: 对比符合条件的设备与已发现或安装更新的设备。
  • Failure 视图: 按 release、平台、设备类别和安装阶段对错误进行分组。
  • Device 视图: 仅在聚合模式表明存在本地问题时,再检查特定设备的 logs。
  • Incident 视图: 保留用于调查的原始响应和查询参数。

不要将低采用率信号直接等同于 bundle 损坏。设备可能处于离线状态、被排除在 channel 之外、运行不兼容的版本,或正在等待应用执行更新检查。反之,高下载量也不代表启动成功。只要 API 暴露了这些状态,就应始终区分发现、下载、安装和运行时健康状况。

将诊断接入自动化

计划任务 worker 可以查询 release 状态,并在 release 处于非终止状态的时间超过 pipeline 允许值时触发告警。另一个 worker 可以收集失败记录,标准化错误代码,并将其附加到部署工单中。保持告警 payload 简洁,并包含指向 release、channel 和过滤后诊断查询的链接。

身份验证和错误处理应与 endpoint 调用位于同一客户端层。Worker 应根据凭证策略刷新或替换凭证,将授权失败与格式错误的请求分开分类,并保留 429 响应以便进行重试调度,而不是将其视为通用的服务器错误。

严格按照规范使用分页游标或文档中指定的偏移量。批量诊断任务必须在页面之间保持其位置,避免重复请求第一页。如果记录在查询运行期间可能发生变化,请使用稳定的时间边界或 release 过滤器,以确保生成的报告可复现。

限流与安全响应头

生产环境客户端在选择重试路径之前应检查响应头。捕获 X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After,以及任何有文档记录的 RateLimit-* API 客户端中间件中的字段。把它们传给重试控制器和结构化日志。不要硬-code 可能因账户、端点或操作而不同的配额。

之间的区别 容量信息 以及 重试指令 决定下一个请求。剩余次数响应头显示客户端距离上限还有多远。 Retry-After 指定服务器何时允许再次尝试。如果存在该指令,就照做。如果响应没有给出时间提示,就使用带抖动的有界指数退避,并设定固定的尝试次数上限。

现代数据中心里成排的服务器机架,配着蓝色线缆和闪烁的状态指示灯。

保护管理端

把 Capgo 管理请求放在受信任的后端或 CI runner 上。Capacitor 应用可以调用范围很窄的面向应用的服务,但绝不应拿到能修改发布、渠道或组织资源的凭据。强制启用 TLS、校验请求体,并从链路追踪和错误报告中移除 Authorization 头。

按操作分别设置控制措施。在安全的前提下缓存或合并只读元数据请求。为上传、导出、登录尝试和发布变更设置各自的限额。当 API 支持批量操作时,把独立的元数据读取合并成批,然后按批次的请求数和条目数上限计算,而不是假设一个批次只算一个单位。基于行为的控制也有助于发现分布式滥用模式,如 速率限制安全指南.

为每个请求设置超时,并区分传输失败与 HTTP 响应。超时意味着变更结果未知,因此重试前需查询其状态。A 429 响应是明确的服务器反馈,客户端应根据其头部信息安排下一次尝试。

对于 Capacitor 部署, Capgo 的 API 应用商店合规速率限制指南 提供了相关的操作参考。请保持凭据私密,遵守服务器头部信息,并确保重试过程可观测而非静默执行。

排查常见的 API 错误

大多数故障分为三类:身份验证、验证和限流。在修改 code 之前,先诊断故障类别。响应状态码、结构化错误主体及相关头部信息通常足以确定下一步操作。

身份验证失败

一套 401 或等效的授权响应通常意味着凭据缺失、格式错误、已过期、已吊销或使用了错误的方案。请在实际的 CI 作业中检查环境变量,而不仅仅是在本地 shell 中。确认请求包含当前 API 文档中指定的确切头部格式,然后针对只读操作测试该凭据。

如果响应表明权限不足而非身份无效,请将其视为授权问题。请组织管理员审查密钥的作用域、应用访问权限和环境。不要通过分发具有广泛权限的个人密钥来解决权限错误。

无效请求体

验证响应表示服务器已接收请求,但拒绝了其结构或值。请将 payload 与当前 schema 进行比对,重点关注必填字段、类型、枚举值、嵌套对象和标识符。移除不支持的字段,而不是指望服务会忽略它们。

记录脱敏后的 payload 及响应中的字段级错误。在 CI 中添加 schema 验证,以便在上传开始前拦截格式错误的 release 元数据。如果操作是部分更新,请确认端点期望的是 patch 风格的 body,而不是完整替换。

限流与不明确的变更

一套 429 意味着 worker 必须停止发送请求,并遵循服务器的重试指导。尊重 Retry-After 如果存在,在计算回退延迟时应用抖动(jitter),并防止多个并发 worker 在同一时刻重试。

如果在上传或创建 release 时发生超时,不要立即提交另一个 mutation。如果收到了客户端生成的 build 引用或返回的标识符,请使用它来搜索或检索该操作。如果没有可用标识符,请查阅 API 文档中关于支持或幂等机制的说明,以确认原始请求是否已完成。这可以避免重复的 release,并确保最终部署记录的可信度。


Capgo 提供了一套公开的 REST API,用于管理应用交付资源、发布、渠道、设备及相关部署工作流,方便团队将 Live Updates 操作接入现有的 CI/CD 和监控系统。请查阅当前的 Capgo 文档,创建一个权限最小化的测试凭据,并在将生产环境发布自动化之前,验证一条完整的发布与回滚路径。

为 Capacitor 应用提供 Live Updates

当 Web 层出现线上 Bug 时,通过 Capgo 发布修复,而不用等 App Store 审核好几天。用户会在后台收到更新,原生变更则仍走正常审核流程。

博客最新动态

Capgo 为你提供打造真正专业的移动应用所需的最有价值的洞察。