@apostra/sdk

中文文档
0.41.0发布于 2026/10/31Apache-2.0TypeScriptES Module构建来源已验证

官方Apostra V3 HTTP SDK

中文使用文档

Apostra TypeScript SDK

对公共V3 HTTP API的类型化调用。要求Node.js 22.18或更高版本。

npm install @apostra/sdk

先从 SDK快速入门. 它包括账户发现,活动启动预览和确认,以及 交付报告。这个 可运行synthetic-seller 例子 在SDK源代码签出中。默认情况下,它预览并只确认一个 启动时 APOSTRA_CONFIRM_LAUNCH=true 是故意设定的。

import { Apostra } from '@apostra/sdk'
const api = new Apostra()
const status = await api.getStatus()

客户端读取 APOSTRA_API_KEY, APOSTRA_ACCOUNT_ID 和 APOSTRA_BASE_URL 默认情况下。显式构造函数选项覆盖这些 值。使用 accessToken 获取现有REST/M2M承载令牌,或 tokenProvider 用于应用程序管理的获取和刷新。供应完全 一个凭证来源。 m2mTokenProvider 获取并缓存服务器端 使用已发布的M2M端点的客户端凭证令牌;刷新60 并共享并发刷新。不要放API密钥或 浏览器包、url、示例或日志中的客户端秘密。没有 明确的凭证和否 APOSTRA_API_KEY, Node.js客户端使用登录 那 apostra login 为基URL存储,如果有的话;SDK从来没有 打开浏览器,只写入登录文件(刷新令牌)。这个 包不重放401响应。M2M令牌刷新有一个 默认30秒截止日期;通过 timeoutMs 来推翻它。

import { Apostra, m2mTokenProvider } from '@apostra/sdk'

const api = new Apostra({
  tokenProvider: m2mTokenProvider({
    clientId: process.env.APOSTRA_CLIENT_ID!,
    clientSecret: process.env.APOSTRA_CLIENT_SECRET!,
    scope: 'interchange:read',
  }),
})

方法接受生成的连线输入并返回信封的输入 data. 每个生成的方法也有 WithResponse 变体,例如 getStatusWithResponse. 它返回 { data, requestId, headers, status } 用于 呼叫成功,使支持工具得以保留 x-request-id 和响应 没有通过连接操作名调度的头文件。 ApostraError 公开 status, code, recovery, retryAfter, retryable, 的类型 error, requestId. 抓 RateLimitError, ValidationError, 或另一个类型化子类,而不是解析异常字符串。默认的 异常字符串排除响应文本。静态类型不能替代服务器 模式、长度、条件要求或权限的验证。

读取调用接受 { accountId, signal, timeoutMs };写调用需要这些 选项,以包含呼叫者拥有的 { idempotencyKey }. SDK将其发送为 Idempotency-Key,永远不会创建或取代它。帐户选择用途 X-SCOPE3-CUSTOMER-ID;它必须与凭据解析的帐户匹配。 取消停止等待HTTP;它不会撤消服务器的工作。请求 有一个30秒的超时,不遵循重定向,并重试瞬态网络, 429和5xx失败两次默认情况下,全抖动退。集 maxRetries: 0 选择退出。自动读取重试。只使用 生成写方法所需的调用者拥有的相同的幂等键。 SDK永远不会创建或替换该密钥。服务器 retry_after 是最小值 重试延迟。

const { data, requestId, headers } = await api.getStatusWithResponse()
const correlationId = headers.get('x-request-id')

一、 202 提出了 InFlightReceiptError 而不是返回一个完整的值。 使用 settle 重放相同的键操作,直到完成;它的荣誉 收据的 Retry-After、截止日期及取消信号:

const key = 'preview-123'
const result = await settle(
  (signal) => api.saveAsk(input, { idempotencyKey: key, signal }),
  { timeoutMs: 30_000 },
)

paginate 和 poll 以输入回调为例。保留原有查询参数; 修订和密钥;提供操作的游标/状态访问器。没有助手 假设POST在没有调用者拥有的键的情况下可以安全地重试,或者每个调用者都可以安全地重试 列表具有相同的游标。 轮询将其信号传递给 read(signal);分页将其传递给 read(cursor, signal). 将该信号转发到SDK调用以取消 底层HTTP请求。超时包括凭据、HTTP和响应体 消费;注入的获取/提供程序必须配合取消 停止自己的工作。取消仍然会阻止SDK等待。

进口 verifyWebhook 仅从服务器端 @apostra/sdk/webhooks 子路径。它 验证保留重复的V3 webhook头,原始体,五分钟 传递窗口,以及在解析JSON之前的旋转键映射。提供每一个原料 发生的 signature, timestamp, deliveryId;不要平复 头或日志秘密。网络安全的 @apostra/sdk root不加载Node 密码学。

openHandoff(url, opener?) 接受API返回的实际HTTPS URL。 如果没有打开器,它只返回URL。一些UI操作当前返回 只有参数。URL构建、登录、等待/恢复和字节上传 除非未来的公共合同对其进行定义,否则不受支持。 getHandoff(result) 将支持的人类行为结果缩小到 kind, url, expiresAt 和 resume 说明或退货 null. 通过, 键入的值 openHandoff(handoff, opener?);没有开瓶器 返回提供的HTTPS URL。打开或关闭浏览器则不是 完成:跟 resume 并在继续之前读取受影响的对象。 SDK从不构造URL或嵌入登录流。 uploadCreativeAsset 公开当前键入的人工任务和回退URL。

@apostra/sdk/metadata 导出生成的操作名称、路径、安全性和 命令行发现的参数说明。SDK没有终端,浏览器, 配置文件存储或MCP依赖项。从 @apostra/sdk/models.

来源及发行版本: https://github.com/apostra-public/apostra

版本与发布记录

@apostra/sdk 共发布 6 个版本,首次发布于 2026/10/13;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.41.0latest2026/10/312 天前
0.40.02026/10/277 天前
0.39.02026/10/268 天前
0.38.02026/10/1815 天前
0.37.02026/10/1321 天前
0.0.0-stage2026/10/1321 天前

关于 @apostra/sdk 的常见问题

@apostra/sdk 是什么?

官方Apostra V3 HTTP SDK

如何安装 @apostra/sdk?

在项目目录运行 npm install @apostra/sdk,或使用 pnpm add / yarn add / bun add。

@apostra/sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@apostra/sdk 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@apostra/sdk 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.18.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@apostra/sdk 可以商用吗?

@apostra/sdk 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@apostra/sdk 还在维护吗?

最新版本 0.41.0 发布于 2026/10/31(2 天前);至今共发布 6 个版本,其中过去 12 个月发布了 6 个;首次发布于 2026/10/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。