@bigcommerce/api-nodejs

中文文档
0.1.2-alpha发布于 2023/07/25MITTypeScriptCommonJS近 30 天下载 2305

用于认证和与 BigCommerce API 通信的节点模块

中文使用文档
文档目录8 节
  1. 安装(开发中)
  2. 类型生成
  3. 使用量
  4. 大商业对象
  5. 奥奥特
  6. 资源
  7. 限制费率管理
  8. 现有资源和方法

节点商业

用于认证和与BigCommerce API通信的节点模块.

安装(开发中)

  1. 克隆此寄存器 : git clone [email protected]:bigcommerce/bigcommerce-api-node.git
  2. 导航到已克隆仓库 : cd bigcommerce-api-node
  3. 运行 npm 链接数字 : npm link

现在,你可以导航到其他软件包的目录(例如, 样本-应用-节点运行 npm link bigcommerce-api-node 这样你就可以使用和测试这个软件包,仿佛它是从国家预防机制下载的.

类型生成

这个 bigcommerce-api-node 软件包从 Open API 光谱中自动生成类型 .yml 为我们提供动力的文件 公共 API 文档在为《公约》 bigcommerce-api-node 软件包,您可能认为有必要从光谱中重新生成类型.

为此,只需运行:

npm run generate

此命令将 :

  1. 运行 npm run init 汇编 TypeGenerator.ts 类
  2. 运行 dist/generate/TypeGenerator.js 生成类型
  3. 运行 npm build 将类型构建到分布式节点.js包中

使用量

首先,将软件包导入您的项目 :

import BigCommerce from '@bigcommerce/api-nodejs';

然后,创建带有与您的使用大小写相关的配置选项的 BigCommerce 对象 .

大商业对象

主要内容 BigCommerce 导入是一个包含大商业节点客户端不同用途的属性的对象。 现有属性说明如下:

  • Auth: 此类可以被即时处理, 用来处理商家点击时开始的 OAuth 流 安装 在单击应用程序上.
  • Rest:此类可被即时化并用于向BigCommerce Public REST API提出API请求.

奥奥特

这个 bigcommerce-api-node 软件包可用于处理商家点击时开始的 OAuth 流 安装 在单击应用程序上.

首先,创建大商业对象 clientId, (中文(简体) ), clientSecret,以及 authCallback 所需的配置选项:

const bigcommerceAuth = new BigCommerce.Auth({
  clientId: 'YOUR_CLIENT_ID',
  clientSecret: 'YOUR_CLIENT_SECRET',
  authCallback: 'https://yourapplication.com/auth',
});

这个 bigcommerceAuth 上面创建的对象暴露出两种公开方法: authorize 财务报告和审定财务报表 verifyJWT。 。 。 .

这个 authorize 方法需要一个参数——包含字符串值的对象 code, (中文(简体) ), scope,以及 context,当一个商家安装您的应用程序时,这些请求由 GET 请求提供到您的商店.

const payload = await bigcommerceAuth.authorize({code, scope, context});

存储在 payload 变量将包含以下密钥/值配对:

{
  access_token: '123abc',
  scope: 'store_v2_orders etc.',
  user: {
    id: 12345,
    username: '[email protected]',
    email: '[email protected]',
  },
  context: 'stores/{STORE_HASH}',
  account_uuid: 'uuid-string'
}

这个 verifyJWT 可使用该方法核查并返还该装置返回的有效载荷 load, (中文(简体) ), uninstall,以及 remove User 召回电话。 每次事件都会触发从BigCommerce到您的应用程序的召回端点的请求,其中包含 signed_payload_jwt 作为查询参数。 一旦你解析 signed_payload_jwt 从请求参数,你可以把它传递到 verifyJWT 方法如下:

const payload = bigcommerceAuth.verifyJWT(signed_payload_jwt);

存储在 payload 变量将包含以下密钥/值配对:

{
  aud: 'YOUR_CLIENT_ID',
  iss: 'bc',
  iat: 1646844813,
  nbf: 1646844808,
  exp: 1646931213,
  jti: 'uuid-value',
  sub: 'stores/{STORE_HASH}',
  user: { id: 1470672, email: '[email protected]' },
  owner: { id: 1470672, email: '[email protected]' },
  url: '/'
}

资源

这个 bigcommerce-api-node 软件包可用于与 BigCommerce 公共 REST API 通信.

const bigcommerceRest = new BigCommerce.Rest({
  storeHash: 'yourStoreHash',
  accessToken: 'yourStoreAccessToken',
})

// bigcommerceRest.<resource_name>.<method_name>

每种方法返回 a Promise 解决包含资源数据的响应.

bigcommerceRest.v2.orders
  .list({ limit: 5 })
  .then(orders => console.log(orders))
  .catch(err => console.error(err));

一些资源包括: listAll() 返回一个方法 显示器 允许您循环所有可用的资源, 并处理 pagination .

for await (const order of bigcommerceRest.v2.orders.listAll()) {
  console.log(order);
}

限制费率管理

这个 RestClient class 提供了与 BigCommerce API 限速器相关的状态信息。 现有资料包括:

  • msToReset: 时间( 毫秒) 至限制窗口重排速度
  • nextWindowTime数字 : Date 对象,用于开始下一个限制速度窗口
  • windowSize: 当前速度限制窗口的总大小
  • requestsRemaining: 在执行费率限制之前,保留在目前窗口中的请求数量
  • requestsQuota: 每个窗口允许的请求总数

每次提出要求都会更新这些资料。 它可以通过 rateLimitManager 用于避免收到 429 从服务器出错 .

bigcommerceRest.rateLimitManager.status  // <-- { msToReset, windowSize, requestsRemaining, requestsQuota }

RestClient 可选择配置以延迟请求,直到满足最低请求阈值的下个速率限制窗口.

  const bigcommerceRest = new BigCommerce.Rest({
    storeHash: STORE_HASH,
    accessToken: ACCESS_TOKEN,
    rateLimitConfig: {
      enableWait: true,
      minRequestsRemaining: 10,
    },

此外,在满足请求阈值时,还可以提供自定义的回调对象.

  const limitCallback = params => console.log(params.message);

  const bigcommerceRest = new BigCommerce.Rest({
    storeHash: STORE_HASH,
    accessToken: ACCESS_TOKEN,
    rateLimitConfig: {
      enableWait: false,
      minRequestsRemaining: 10,
      callbackParams: { message: 'request threshold reached' },
      callback: limitCallback  // <-- function called with callbackParams when minRequestsRemaining threashold is met
    },

现有资源和方法

  • 页:1
    • v2. 顺序
      • get(orderId): 获得命令
      • update(orderId, data): 更新顺序
      • archive(orderId): 存档命令
      • count(): 获得命令数
      • list([params]): 获取所有命令
      • listAll([params]): 获取所有命令( 已插入)
      • create(data): 创建顺序
      • archiveAll(): 归档所有命令
    • v2. 命令. 命令库
      • list(orderId[, params]): 列表顺序
      • listAll(orderId[, params]): 列表顺序套接字(已插入)
    • 生产
      • list(orderId[, params]): 列表顺序产品
      • listAll(orderId[, params]): 列表顺序产品(已加入)
      • get(orderId, productId): 获取顺序产品
    • v2. 命令. 命令税
      • list(orderId[, params]): 获得所有顺序税
      • listAll(orderId[, params]): 获取所有顺序税( 已插入)
    • v2. 命令. 命令状态
      • list(): 获取全部顺序状态
      • get(statusId): 获得单一顺序状态
    • v2. 订单
      • list(orderId[, params]): 获得发货订单
      • listAll(orderId[, params]): 订购装运(装入)
      • create(orderId, data): 创建发货顺序
      • deleteAll(orderId): 删除所有发货顺序
      • count(orderId)获得订单运输数
      • get(orderId, shipmentId): 获得货物
      • update(orderId, shipmentId, data): 更新货运
      • delete(orderId, shipmentId): 删除命令
    • v2. 命令. 命令
      • list(orderId[, params]): 获取订单航运地址
      • listAll(orderId[, params]): 获取订单发运地址( 已插入)
      • get(orderId, addressId): 获取航运地址
      • update(orderId, addressId, data): 更新航运地址
    • v2. 顺序. 命令
      • list(orderId[, params]): 获取命令信件
      • listAll(orderId[, params]): 获取顺序信件( 已插入)
    • v2. 命令. 命令跳动引号
      • list(orderId, addressId): 获得订单航运

版本与发布记录

@bigcommerce/api-nodejs 共发布 3 个版本,首次发布于 2022/08/17;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.1.2-alphalatest2023/07/253 年前
0.1.1-alpha2022/08/174 年前
0.1.0-alpha2022/08/174 年前

关于 @bigcommerce/api-nodejs 的常见问题

@bigcommerce/api-nodejs 是什么?

用于认证和与 BigCommerce API 通信的节点模块

如何安装 @bigcommerce/api-nodejs?

在项目目录运行 npm install @bigcommerce/api-nodejs,或使用 pnpm add / yarn add / bun add。

@bigcommerce/api-nodejs 支持 TypeScript 吗?

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

@bigcommerce/api-nodejs 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@bigcommerce/api-nodejs 需要什么版本的 Node.js?

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

@bigcommerce/api-nodejs 可以商用吗?

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

@bigcommerce/api-nodejs 的下载量有多少?

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

@bigcommerce/api-nodejs 还在维护吗?

最新版本 0.1.2-alpha 发布于 2023/07/25(3 年前);至今共发布 3 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/08/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。