Beehiiv 类型脚本库
Beehiiv TypeScript库提供了从TypeScript获取Beehiiv API的方便通道.
目录
文档
API 备有参考文件 这里。 。 。 .
安装
npm i -s @beehiiv/sdk
参考文献
该图书馆的全部参考资料可供查阅 这里。 。 。 .
使用量
以下列方式证明和使用客户端:
import { BeehiivClient } from "@beehiiv/sdk";
const client = new BeehiivClient({ token: "YOUR_TOKEN" });
await client.automationJourneys.create("pub_00000000-0000-0000-0000-000000000000", "aut_00000000-0000-0000-0000-000000000000", {
email: "[email protected]",
double_opt_override: "on"
});
请求和响应类型
SDK导出所有请求和响应类型为TypeScript接口. 只需用 以下命名空间:
import { Beehiiv } from "@beehiiv/sdk";
const request: Beehiiv.AutomationJourneysCreateRequest = {
...
};
例外处理
当 API 返回一个非成功状态代码( 4xx 或 5xx 响应) 时, 以下错误的子类 将会被扔出.
import { BeehiivError } from "@beehiiv/sdk";
try {
await client.automationJourneys.create(...);
} catch (err) {
if (err instanceof BeehiivError) {
console.log(err.statusCode);
console.log(err.message);
console.log(err.body);
console.log(err.rawResponse);
}
}
高级
其他信头
如果您希望作为请求的一部分发送额外的信头,请使用 headers 请求选项.
const response = await client.automationJourneys.create(..., {
headers: {
'X-Custom-Header': 'custom value'
}
});
其它查询字符串参数
如果您希望作为请求的一部分发送额外的查询字符串参数,请使用 queryParams 请求选项.
const response = await client.automationJourneys.create(..., {
queryParams: {
'customQueryParamKey': 'custom query param value'
}
});
检索
SDK是用有指数回放的自动回放装置. 申请要等会再审 由于请求被认为可以重试,且重试的次数没有超过所配置的 重试限制( 默认: 2) .
当返回以下任一 HTTP 状态代码时, 请求被视为可重试 :
- 408 (简体中文) (超时)
- 429个 (太多请求)
- 第5XX条 (内部服务器出错)
使用 maxRetries 请求选项来配置此行为.
const response = await client.automationJourneys.create(..., {
maxRetries: 0 // override maxRetries at the request level
});
超时
SDK默认为60第二次超时. 使用 timeoutInSeconds 选项来配置此行为.
const response = await client.automationJourneys.create(..., {
timeoutInSeconds: 30 // override timeout to 30s
});
中止请求
SDK允许用户在任何时刻通过一个中止信号来中止请求.
const controller = new AbortController();
const response = await client.automationJourneys.create(..., {
abortSignal: controller.signal
});
controller.abort(); // aborts the request
访问原始响应数据
SDK通过下列方式提供原始响应数据,包括信头: .withRawResponse() 方法.
这个 .withRawResponse() 方法返回给一个带有 data (单位:千美元) rawResponse 属性.
const { data, rawResponse } = await client.automationJourneys.create(...).withRawResponse();
console.log(data);
console.log(rawResponse.headers['X-My-Header']);
日志
SDK支持记录. 您可以通过通过一个 logging 对象对客户端选项.
import { BeehiivClient, logging } from "@beehiiv/sdk";
const client = new BeehiivClient({
...
logging: {
level: logging.LogLevel.Debug, // defaults to logging.LogLevel.Info
logger: new logging.ConsoleLogger(), // defaults to ConsoleLogger
silent: false, // defaults to true, set to false to enable logging
}
});
这个 logging 对象可以具有以下属性:
level: 要使用的日志级别 。 默认为logging.LogLevel.Info。 。 。 .logger:要使用的伐木机. 默认为 alogging.ConsoleLogger。 。 。 .silent: 是否让伐木工安静. 默认为true。 。 。 .
这个 level 属性可以是下列值之一:
logging.LogLevel.Debuglogging.LogLevel.Infologging.LogLevel.Warnlogging.LogLevel.Error
要提供自定义日志, 您可以通过一个执行 logging.ILogger 接口.
自定义日志示例
举个例子,用流行的 winston 伐木图书馆.
import winston from 'winston';
const winstonLogger = winston.createLogger({...});
const logger: logging.ILogger = {
debug: (msg, ...args) => winstonLogger.debug(msg, ...args),
info: (msg, ...args) => winstonLogger.info(msg, ...args),
warn: (msg, ...args) => winstonLogger.warn(msg, ...args),
error: (msg, ...args) => winstonLogger.error(msg, ...args),
};
举个例子,用流行的 pino 伐木图书馆.
import pino from 'pino';
const pinoLogger = pino({...});
const logger: logging.ILogger = {
debug: (msg, ...args) => pinoLogger.debug(args, msg),
info: (msg, ...args) => pinoLogger.info(args, msg),
warn: (msg, ...args) => pinoLogger.warn(args, msg),
error: (msg, ...args) => pinoLogger.error(args, msg),
};
运行时间相容性
SDK工作时间如下:
- 节点.js 18+
- 维塞尔
- 云花岗工人
- 德诺v1.25+
- 1.0+号舱
- 原生反应
自定义获取客户端
SDK为您提供了自定义 HTTP 客户端/ 获取功能的方法 。 如果你正在运行在一个 不支持的环境,这为您提供了一个打破玻璃并确保SDK工作的方法.
import { BeehiivClient } from "@beehiiv/sdk";
const client = new BeehiivClient({
...
fetcher: // provide your implementation here
});
检索
TypeScript SDK是使用有指数回放的自动回放的仪器. 一个请求是 只要请求被认为可以收回,再试的次数没有增加 而非所配置的重试限制( 默认: 2) .
如果返回以下任一 HTTP 状态代码,则请求被视为可收回:
- 408 (简体中文) (超时)
- 409个 (冲突)
- 429个 (太多请求)
- 第5XX条 (内部服务器出错)
使用 maxRetries 请求选项来配置此行为.
const response = await beehiiv.subscriptions.create(..., {
maxRetries: 0 // override maxRetries at the request level
});
超时
SDK默认为60秒. 使用 timeoutInSeconds 选项到
配置此行为 .
const response = await beehiiv.subscriptions.create(..., {
timeoutInSeconds: 30 // override timeout to 30s
});
运行时间兼容性
SDK 默认为 node-fetch 但是如果存在, 将会使用全局获取客户端 。 SDK这个
工作时间如下:
支持以下运行时间:
- 节点.js 15+
- 维塞尔
- 云花岗工人
- 德诺v1.25+
- 1.0+号舱
- 原生反应
自定义抓取客户端
SDK为您提供了自定义 HTTP 客户端/ 获取功能的方法 。 狦琌 在不支持的环境中运行, 这为您提供了一个打破玻璃和 确保SDK的工作.
import { BeehiivClient } from 'beehiiv';
const beehiiv = new BeehiivClient({
apiKey: "...",
fetcher: // provide your implementation here
});
Beta 状态
这个SDK是在β中,在版本之间可能会有断裂的更改,而没有主要的版本更新. 因此,我们建议将软件包版本固定在您的软件包.json文件中的特定版本. 这样,您可以每次安装同一版本,而不中断更改,除非您是 有意寻找最新版本.
捐款
虽然我们重视对SDK的开源贡献,但这个库是程序生成的. 直接给这个图书馆增加的代码 得转到我们一代人的代码上, 否则,它们将被覆盖 在下一次产生的释放。 随便打开公关吧 是一个概念的证明, 但知道我们将无法 合并它作为一个。 我们建议开放 先和我们讨论一个问题!
另一方面,对 " README " 的贡献总是非常受欢迎的!