@continuous-labs/sdk

中文文档
0.3.13发布于 2026/11/10MITTypeScriptES Module构建来源已验证近 30 天下载 4381

连续 API 的 SDK 类型.

中文使用文档
文档目录37 节
  1. 内容提要
  2. 目录
  3. SDK 安装
  4. 国家预防机制
  5. 菲律宾
  6. 阿宝
  7. 雅伦
  8. 所需资源
  9. SDK 示例使用法
  10. 示例
  11. 认证
  12. 常客安全计划
  13. 现有资源和业务
  14. 图片框
  15. Apibox 抓图
  16. 全权证书
  17. 麦克风盒
  18. Mcpbox 弹出
  19. 模拟快照
  20. 模拟
  21. 模拟器
  22. 网页盒
  23. 网络框抓取
  24. 独立职能
  25. 倾斜
  26. 文件上传
  27. 检索
  28. 处理错误
  29. 示例
  30. 错误分类
  31. 服务器选择
  32. 覆盖服务器 URL / 客户端
  33. 自定义 HTTP 客户端
  34. 调试
  35. 成熟度
  36. 捐款
  37. SDK 创建者 说话方便

@ 持续- labs/ sdk

连续 API 的 SDK 类型.

Spekeasy从公共连续API合同中生成了这个SDK. 这个 API 参考 记录每个操作。 在此寄存器中报告 SDK 和 API 的问题 .

内容提要

连续API:从快照开始API Boxs,Web Boxs和MCP Boxs. 以 API 密钥认证作为 Bearer 令牌发送的每项请求 .

目录

SDK 安装

SDK可以安装其中之一 无, (中文(简体) ), 小时, (中文(简体) ), 包头 或者说 线条 软件包管理器.

国家预防机制

npm add @continuous-labs/sdk

菲律宾

pnpm add @continuous-labs/sdk

阿宝

bun add @continuous-labs/sdk

雅伦

yarn add @continuous-labs/sdk

[注] 此软件包仅作为ES模块(ESM)发布. 用于应用 常见JS, 使用 await import("@continuous-labs/sdk") 以导入和使用此软件包.

所需资源

对于支持的 JavaScript 运行时间, 请参考 运行时间.md。 。 。 .

SDK 示例使用法

示例

import { Continuous } from "@continuous-labs/sdk";

const continuous = new Continuous({
  apiKeyAuth: process.env["CONTINUOUS_API_KEY_AUTH"] ?? "",
});

async function run() {
  const result = await continuous.apibox.listApiboxes({});

  for await (const page of result) {
    console.log(page);
  }
}

run();

认证

常客安全计划

这个SDK在全球支持以下安全计划:

名称类型计划环境变量
apiKeyAuth网页HTTP 缓冲器CONTINUOUS_API_KEY_AUTH

用 API 认证 apiKeyAuth 初始化 SDK 客户端实例时必须设置参数 。 例如:

import { Continuous } from "@continuous-labs/sdk";

const continuous = new Continuous({
  apiKeyAuth: process.env["CONTINUOUS_API_KEY_AUTH"] ?? "",
});

async function run() {
  const result = await continuous.apibox.listApiboxes({});

  for await (const page of result) {
    console.log(page);
  }
}

run();

现有资源和业务

可用方法

图片框

Apibox 抓图

全权证书

麦克风盒

Mcpbox 弹出

模拟快照

模拟

模拟器

网页盒

网络框抓取

独立职能

上述所有方法都作为独立功能提供。 这些 函数是用于在浏览器中运行的应用程序的理想功能,没有服务器 运行时间或应用程序捆绑大小为主的其他环境 关心。 当使用捆绑器构建您的应用程序时, 全部未使用 功能将被从最后的捆绑中排除,或者被树切除.

要了解更多独立函数, 请检查 职能.md。 。 。 .

现有的独立职能

倾斜

此 SDK 中的一些端点支持 pagination. 要用帕吉恩语,你 使您的 SDK 调用如常, 但返回的响应对象也将是 可使用下列设备消耗的同步可执行性: for await...of 语法.

举个例子说

import { Continuous } from "@continuous-labs/sdk";

const continuous = new Continuous({
  apiKeyAuth: process.env["CONTINUOUS_API_KEY_AUTH"] ?? "",
});

async function run() {
  const result = await continuous.apibox.listApiboxes({});

  for await (const page of result) {
    console.log(page);
  }
}

run();

文件上传

某些SDK方法接受文件作为多段请求的一部分. 可以而且通常建议将文件作为流上传,而不是将全部内容读入内存. 这避免了过度的内存消耗,并且在与非常大的文件合作时,可能会与外出错误相撞. 以下示例说明如何在请求中附加文件流 .

[TIP]

根据您的 JavaScript 运行时间, 有一些方便的功能可以将一个控件返回到一个文件, 而不将全部内容读入内存 :

  • 节点.js v20+: V20年以后,Node.js有一个本地人 openAsBlob 函数在 node:fs。 。 。 .
  • 宾: 当地人 Bun.file 函数生成一个可用于流文件上传的文件手柄.
  • 浏览器 : 所有支持的浏览器返回实例到一个 File 当从一个值读取时 <input type="file"> 键.
  • 节点.js v18: 文件流可以使用 fileFrom 助手从 fetch-blob/from.js。 。 。 .
import { Continuous } from "@continuous-labs/sdk";

const continuous = new Continuous({
  apiKeyAuth: process.env["CONTINUOUS_API_KEY_AUTH"] ?? "",
});

async function run() {
  const result = await continuous.apiboxSnapshots.createApiboxSnapshot({
    body: {
      request: {},
    },
  });

  console.log(result);
}

run();

检索

此 SDK 中的一些端点支持重试. 如果在没有任何配置的情况下使用SDK,则会回落到API提供的默认重试策略. 然而,默认的重试策略可以在一次操作的基础上被推翻,或者在整个SDK中被推翻.

更改单个 API 调用默认重试策略, 只需为调用提供重试 Config 对象 :

import { Continuous } from "@continuous-labs/sdk";

const continuous = new Continuous({
  apiKeyAuth: process.env["CONTINUOUS_API_KEY_AUTH"] ?? "",
});

async function run() {
  const result = await continuous.apibox.listApiboxes({}, {
    retries: {
      strategy: "backoff",
      backoff: {
        initialInterval: 1,
        maxInterval: 50,
        exponent: 1.1,
        maxElapsedTime: 100,
      },
      retryConnectionErrors: false,
    },
  });

  for await (const page of result) {
    console.log(page);
  }
}

run();

如果您想要覆盖所有支持重试的操作的默认重试策略, 您可以在 SDK 初始化时提供重试Config :

import { Continuous } from "@continuous-labs/sdk";

const continuous = new Continuous({
  retryConfig: {
    strategy: "backoff",
    backoff: {
      initialInterval: 1,
      maxInterval: 50,
      exponent: 1.1,
      maxElapsedTime: 100,
    },
    retryConnectionErrors: false,
  },
  apiKeyAuth: process.env["CONTINUOUS_API_KEY_AUTH"] ?? "",
});

async function run() {
  const result = await continuous.apibox.listApiboxes({});

  for await (const page of result) {
    console.log(page);
  }
}

run();

处理错误

ContinuousError 是所有 HTTP 错误响应的基础类。 其属性如下:

财产类型说明
error.messagestring错误消息
error.statusCodenumberHTTP 响应状态代码 eg 404
error.headersHeadersHTTP 响应头
error.bodystringHTTP 躯体. 如果没有尸体返回, 则可以是空字符串 .
error.rawResponseResponse原始 HTTP 响应
error.data$可选的 一些错误可能包含结构化数据. 参见错误类。 。 。 .

示例

import { Continuous } from "@continuous-labs/sdk";
import * as errors from "@continuous-labs/sdk/models/errors";

const continuous = new Continuous({
  apiKeyAuth: process.env["CONTINUOUS_API_KEY_AUTH"] ?? "",
});

async function run() {
  try {
    const result = await continuous.apibox.listApiboxes({});

    for await (const page of result) {
      console.log(page);
    }
  } catch (error) {
    // The base class for HTTP error responses
    if (error instanceof errors.ContinuousError) {
      console.log(error.message);
      console.log(error.statusCode);
      console.log(error.body);
      console.log(error.headers);

      // Depending on the method different errors may be thrown
      if (error instanceof errors.ErrorT) {
        console.log(error.data$.code); // string
        console.log(error.data$.detail); // string
        console.log(error.data$.validation); // models.SpecificationValidation
      }
    }
  }
}

run();

错误分类

主错误 :

少常见错误(7)

网络错误 :

继承从 ContinuousError数字 :

  • SimulatorDeleteConflictError: 冲突。 状态代码 409适用于81个方法中的1个
  • ResponseValidationError:从服务器返回的数据和SDK期望的结构之间的类型不匹配. 见 error.rawValue 原值和 error.pretty() 用于格式化良好的多行字符串.

* 检查 方法文档 以查看该错误是否适用.

服务器选择

覆盖服务器 URL / 客户端

通过将 URL 传递到 serverURL: string 初始化 SDK 客户端实例时的可选参数 。 例如:

import { Continuous } from "@continuous-labs/sdk";

const continuous = new Continuous({
  serverURL: "https://api.continuouslabs.ai",
  apiKeyAuth: process.env["CONTINUOUS_API_KEY_AUTH"] ?? "",
});

async function run() {
  const result = await continuous.apibox.listApiboxes({});

  for await (const page of result) {
    console.log(page);
  }
}

run();

自定义 HTTP 客户端

TypeScript SDK 使用一个 HTTPClient 将本地人包裹起来 获取 API这个 客户端是薄薄的包装 fetch 并且提供连接钩子的能力 围绕可用于修改请求或处理的请求生命周期 错误和反应.

这个 HTTPClient 构造器使用可选 fetcher 参数可以是 用于整合第三方 HTTP 客户端或用于编写测试以嘲弄 hTTP 客户端并输入固定设备.

以下例子说明如何:

  • 通过使用 未编辑代理代理代理服务器
  • 使用该 "beforeRequest" 向请求添加自定义头和超时
  • 使用该 "requestError" 记录错误的钩头
import { Continuous } from "@continuous-labs/sdk";
import { ProxyAgent } from "undici";
import { HTTPClient } from "@continuous-labs/sdk/lib/http";

const dispatcher = new ProxyAgent("http://proxy.example.com:8080");

const httpClient = new HTTPClient({
  // 'fetcher' takes a function that has the same signature as native 'fetch'.
  fetcher: (input, init) =>
    // 'dispatcher' is specific to undici and not part of the standard Fetch API.
    fetch(input, { ...init, dispatcher } as RequestInit),
});

httpClient.addHook("beforeRequest", (request) => {
  const nextRequest = new Request(request, {
    signal: request.signal || AbortSignal.timeout(5000)
  });

  nextRequest.headers.set("x-custom-header", "custom value");

  return nextRequest;
});

httpClient.addHook("requestError", (error, request) => {
  console.group("Request Error");
  console.log("Reason:", `${error}`);
  console.log("Endpoint:", `${request.method} ${request.url}`);
  console.groupEnd();
});

const sdk = new Continuous({ httpClient: httpClient });

调试

您可以为 SDK 请求和响应设置 SDK 以发送调试日志 .

你可以通过一个匹配的日志 console'作为 SDK 选项的接口.

[尖叫声] 注意调试日志会揭示一些秘密, 如标题中的 API 令牌, 打印到控制台或文件中的日志信息 。 建议只在本地开发期间使用这一特征,而不能用于生产.

import { Continuous } from "@continuous-labs/sdk";

const sdk = new Continuous({ debugLogger: console });

通过设置环境变量也可以启用默认调试日志 CONTINUOUS_DEBUG 真实的.

发展

成熟度

这个SDK是在β中,在版本之间可能会有断裂的更改,而没有主要的版本更新. 因此,我们建议使用 到特定软件包版本。 这样,您可以每次安装同一版本而不中断更改,除非您是故意的 正在寻找最新版本.

捐款

虽然我们重视对SDK的开源贡献,但这个库是程序生成的. 任何加入内部文件的手动修改都会被覆盖到下一代上. 我们期待着听到你的反馈。 随便你开个公关 或一个有概念证明的问题 我们会尽力把它纳入未来的发行.

SDK 创建者 说话方便

版本与发布记录

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

版本发布日期距今
0.3.13latest2026/11/10今天
0.3.122026/11/091 天前
0.3.112026/11/082 天前
0.3.102026/11/055 天前
0.3.92026/11/046 天前
0.3.82026/11/037 天前

关于 @continuous-labs/sdk 的常见问题

@continuous-labs/sdk 是什么?

连续 API 的 SDK 类型.

如何安装 @continuous-labs/sdk?

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

@continuous-labs/sdk 支持 TypeScript 吗?

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

@continuous-labs/sdk 支持 ESM 还是 CommonJS?

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

@continuous-labs/sdk 可以商用吗?

@continuous-labs/sdk 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@continuous-labs/sdk 的下载量有多少?

根据 npm 官方下载统计,@continuous-labs/sdk 在 2026/10/11 – 2026/11/09 这 30 天内被下载 4,381 次,日均约 146 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@continuous-labs/sdk 还在维护吗?

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