# @apostra/sdk 中文文档

规范地址：https://npmcn.com/package/%40apostra/sdk/

版本：0\.41\.0
npm 元数据更新时间：2026-10-31T13:24:08.581Z
中文译文更新时间：2026-10-31T14:18:07.273Z
软件包许可：Apache-2\.0

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40apostra/sdk
原文对照：https://npmcn.com/package/%40apostra/sdk/?lang=original
项目主页：https://docs.apostra.com/v3/sdk-guide
源码仓库：https://github.com/apostra-public/apostra

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：2 MB，20 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.18\.0
- 运行依赖：1 个
- 首次发布：2026-10-13T01:36:55.340Z
- 最新版本发布：2026-10-31T13:24:08.230Z
- 已发布版本数：6（近 12 个月 6 个）

## 中文简介

官方Apostra V3 HTTP SDK

## 安装

```sh
npm install @apostra/sdk
```

也可以使用：`pnpm add @apostra/sdk`、`yarn add @apostra/sdk`、`bun add @apostra/sdk`

## README

# Apostra TypeScript SDK

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

```bash
npm install @apostra/sdk
```

先从 [SDK快速入门](https://docs.apostra.com/v3/sdk-quickstart). 它包括账户发现，活动启动预览和确认，以及 交付报告。这个 [可运行synthetic-seller 例子](https://github.com/apostra-public/apostra/blob/main/sdk/typescript/examples/first-value.ts) 在SDK源代码签出中。默认情况下，它预览并只确认一个 启动时 `APOSTRA_CONFIRM_LAUNCH=true` 是故意设定的。

```ts
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` 来推翻它。

```ts
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` 是最小值 重试延迟。

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

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

```ts
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](https://github.com/apostra-public/apostra)

## 常见问题

### @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 和提交记录判断。

