管理api
构建应用程序
快速启动
指南
教程
建立渠道
快速启动
指南
教程
建筑店面
管理货币
指南
合作伙伴信息
成为合作伙伴
开始
POS解决方案
ERP解决方案
PIM解决方案
OMS的解决方案
营销解决方案
运输解决方案
支付解决方案

API最佳实践

确保您的集成是最新的

BigCommerce经常增强其核心产品,并积极开发v3 API端点。通过使用最新的API版本,您将确保您的应用程序能够访问最新的资源。伟德棋牌大全您还将更好地定位于提供与商家在BigCommerce商店的控制面板中看到的一致的用户体验。为了保持最新的,书签我们的更新日志

预见BigCommerce api的变化

在BigCommerce,我们对“破坏性”变化和“非破坏性”变化进行了区分。

下面列出的任何“破坏”改变将总是通过我们的开发人员的早期警告更新日志和其他渠道。有几个例外情况。BigCommerce会在不向非生产(alpha/beta) api发出警告的情况下,或者在我们知道某个特定端点的使用为零的情况下,做出破坏性的更改。

突发的变化:

  • 从API响应中删除字段
  • 更改字段的数据类型
  • 改变对象的结构
  • 删除整个端点
  • 添加一个新的必需字段到帖子/身体

我们鼓励开发人员根据我们的api编写代码,如果端点开始返回额外的字段,这些代码就不会中断。我们将在没有任何警告的情况下将这些“不可破坏的”更改推送到代码库中,作为我们正常开发的一部分。

没有爆炸性的变化:

  • 添加一个新字段到得到响应
  • 添加一个新的可选字段到帖子/身体
  • 添加新的端点

有效地利用人

要使应用程序中的数据保持最新,人则为定期的API轮询提供一个很好的替代方案。使用OAuth注册一个你的应用程序可以监听的webhook事件。不要使用遗产基本身份验证对于这个。

当订阅事件被触发时,BigCommerce将发送部分有效负载,并附带一些识别细节,比如创建订单时的订单ID。您的应用程序可以使用有效负载中返回的订单ID来发出后续的完整订单详细信息API请求。

线程API请求

您可以使用线程请求来快速更新API中的信息。线程请求允许你一次发送多个请求。它们可以来自不同的打开连接,也可以来自对同一资源的多个请求。

BigCommerce Ruby API客户是线程安全的。它满足了多个线程访问相同共享数据的需求,以及在任何给定时间只需要一个线程访问共享数据片段的需求。这些属性可以减少应用程序完成一系列请求所需的总时间。

市场应用

商家通常有不止一个人可以访问商店的控制面板。当商店所有者授予了他们适当的权限时,BigCommerce允许其他用户访问应用程序。支持多用户app访问的要求如下:

  • 符号必须存储在store_hash而不是针对用户信息。
  • 开发人员门户工作区,你必须启用你的应用程序技术>多个用户选择。

在用户启动应用程序时返回的有效负载中,用户被区分为owner_emailuser_email。如果这两个电子邮件匹配,则用户就是商店的所有者。

如果您希望启用用户删除,您可以通过填写您的应用程序的删除技术>删除用户回调URL字段。启用用户删除是可选的。对于更高级的实现,您可以允许商店所有者向不同的非管理员用户授予特定的权限。例如,person1.com可能被限制为只编辑产品库存,但不查看订单。如果你决定在应用中添加用户权限,那么这是一个很好的广告功能。

有关更多信息,请参见多用户支持

API率限制

使用OAuth进行身份验证的应用程序是基于每隔几秒刷新一次的配额进行速率限制的。一个商店的最大配额将根据不同的商店的计划

计划&沙箱 最大限额
伟德betvicror2021欧洲杯买球企业计划和企业沙箱(企业测试) 无限(7mil / 30秒)
职业计划 60k /小时(450 / 30秒)
所有其他沙箱(开发人员/合作伙伴/员工) 20k /小时(150 / 30秒)
附加和标准计划 20k /小时(150 / 30秒)

每个对API的请求都会消耗配额中的一个可用请求。当应用程序达到配额限制时,后续请求将被拒绝,直到配额刷新。

该商店的总体配额分配给在特定时间访问该商店的所有应用。这为同时访问API的多个应用程序提供了公平性,防止单个应用程序单独消耗商店的全部配额。当您运行请求时,配额可能会随着额外的客户端连接或断开连接而调整。

并发API调用速率限制

某些BigCommerce API资源对并发请求伟德棋牌大全进行速率限制。这是为了确保平台对所有用户的性能和可靠性。API调用以每个存储、每个端点为基础进行度量。这些限制可能会改变。

限制 端点 方法
10 /商店/:散列/ v3 /客户 帖子

所有其他BigCommerce API资源端点的速率限制为每次并发请求3个。

在平台上玩得很好

每个API响应的HTTP头让你在限速算法中完全看到你的位置:

X-Rate-Limit-Requests-Left→6 X-Rate-Limit-Requests-Quota→25
的名字 描述
X-Rate-Limit-Time-Window-Ms 显示当前速率限制窗口的大小。在这个例子中,是5000毫秒。
X-Rate-Limit-Time-Reset-Ms 显示窗口中还剩多少毫秒。在这个例子中,3000毫秒。3000毫秒后,API配额将刷新。
X-Rate-Limit-Requests-Quota 显示您的客户端的当前窗口中允许多少API请求。在本例中,请求数是25个。
X-Rate-Limit-Requests-Left 详细说明您的客户端在当前窗口中可以做出多少剩余的请求,然后才被限速。在这种情况下,您希望能够在接下来的3000毫秒内再发出6个请求;在3000毫秒内的第7个请求中,您将受到速率限制,并将收到HTTP 429响应。

如果对API的请求触发了一个要求太多了响应。

限速反应将包含X-Rate-Limit-Time-Reset-Ms头,指定客户端在其配额刷新之前必须等待的时间(以毫秒为单位)。在此时间过去后重试请求,您的API服务将恢复正常。

429状态码示例

当您看到一个HTTP响应时429状态码,你的客户端不应该再做任何请求,直到你的配额刷新:

429响应

HTTP / 1.1要求太多了内容类型:application/json X-Rate-Limit-Time-Reset-Ms: 15000

解析X-Rate-Limit-Time-Reset-Ms头,以确定您需要等待多长时间。在这个例子中,它是15000毫秒。您的客户端可以在指定的时间间隔内休眠:

延迟响应的PHP示例

美元毫秒=美元的反应->getHeader(“X-Rate-Limit-Time-Reset-Ms”);usleep(美元毫秒*1000);

在等待给定的毫秒数之后,您的客户机可以返回来发出API请求。

并行请求

您可能希望通过并行向BigCommerce API发送多个HTTP请求来增加应用程序在给定时间单位内可以完成的工作量。这是完全可以接受的。但是,您的应用程序应该监视速率限制标头,以避免使用HTTP429响应。这样做的方法包括:

  • 降低API请求的速率X-Rate-Limit-Requests-Left接近为零。
  • 通过划分,确定一个可接受的请求平均速率X-Rate-Limit-Requests-Quota通过X-Rate-Limit-Time-Window-Seconds,然后自我控制到那个速度。

请注意

接受批量请求的端点可能对接受的并行请求的数量有特定的限制。例如,使多个并行插入请求/价格表/ {price_list_id} /记录会导致429错误响应——这些限制在API参考手册的操作级被记录在案。

使用Storefront Cart API发出请求

客户端应用程序应该避免轮询商店购物车API在时间间隔。成千上万的浏览器可能会在任何给定的时间轮询Storefront Cart API,导致BigCommerce服务器的负载显著增加。我们可以对使用这种做法的商店采取行动,以防止中断对其他商店的服务。

考虑订阅购物车Webhook通过服务器端应用程序,作为每隔一段时间轮询Storefront Cart API的替代选择,并仅作为对用户输入的响应查询Storefront Cart API。将购物车信息存储在浏览器缓存中也是另一种保持不同浏览器选项卡之间的购物车信息最新的方法。

平台的限制

BigCommerce对商店中可以创建的产品、类别、品牌等数量有限制。看到平台的限制为更多的细节。

伟德棋牌大全

相关文章