appoly/shopwired-php-sdk

用于与 ShopWired 交互的 PHP Sdk

0.0.10 2020-09-23 04:04 UTC

README

用于与 ShopWired 交互的 PHP 库 - https://www.shopwired.co.uk/

用法

安装

composer require appoly/shopwired-php-sdk

身份验证

如果使用 .env 来处理环境变量,请添加

SHOPWIRED_API_KEY=xxxxxxxx
SHOPWIRED_SECRET=xxxxxxx

如果不使用

import Appoly\ShopWiredPHPSDK\ShopWiredClient;
...

ShopWiredClient::setCredentials($api_key, $secret);

让我们做点什么

获取所有产品

import Appoly\ShopWiredPHPSDK\Models\Products\Products;
...

$products = Products::all()

文档

类和方法完全基于 API 中可用的端点: https://help.shopwired.co.uk/api/introduction/api-home

每个类将具有(最多)以下可用的函数

Product::all($options = []);
Product::get($id);
Product::count($options = []);
Product::update($id, $data);
Product::create($data);
Product::delete($id)

节流(默认启用)

注意:这可能会导致线程阻塞

(https://help.shopwired.co.uk/api/introduction/api-rate-limiting)

我们使用漏桶算法作为控制器。

漏桶算法允许对 API 进行不频繁的突发调用,并允许您的 APP 随着时间的推移继续进行无限数量的调用。

桶的大小是 40,在任何给定时间内都不能超过这个数值。泄漏率是每秒 2 个调用,这些调用不断地清空桶。

如果您的 APP 平均每秒 2 个调用,那么它永远不会触发 429 过多请求错误。

只要您的桶里有空间,API 调用将几乎瞬间处理。您可以在不超出泄漏率的情况下快速突发 API 调用,只要您的平均调用率不超过每秒 2 个调用。

此包默认将根据此算法和这些参数限制您的请求。这使用 sleep 来计时请求,当达到限制时,意味着线程可能会运行缓慢。

要求

节流需要 redis,以在不同的会话之间实施限制。

禁用

警告:禁用节流可能会导致请求因 429 过多请求 而失败。

要禁用节流,请使用

ShopWiredThrottle::disable();