节点商业
用于认证和与BigCommerce API通信的节点模块.
安装(开发中)
- 克隆此寄存器 :
git clone [email protected]:bigcommerce/bigcommerce-api-node.git - 导航到已克隆仓库 :
cd bigcommerce-api-node - 运行 npm 链接数字 :
npm link
现在,你可以导航到其他软件包的目录(例如, 样本-应用-节点运行 npm link bigcommerce-api-node 这样你就可以使用和测试这个软件包,仿佛它是从国家预防机制下载的.
类型生成
这个 bigcommerce-api-node 软件包从 Open API 光谱中自动生成类型 .yml 为我们提供动力的文件 公共 API 文档在为《公约》 bigcommerce-api-node 软件包,您可能认为有必要从光谱中重新生成类型.
为此,只需运行:
npm run generate
此命令将 :
- 运行
npm run init汇编TypeGenerator.ts类 - 运行
dist/generate/TypeGenerator.js生成类型 - 运行
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): 获得订单航运
- v2. 顺序