Shopify API の Rate Limit を考慮するための参考情報をご紹介します。
Shopify 公式ドキュメント Shopify API rate limits の通り Shopify API には Rate Limit があります。
自分の場合は shopify-api-node という npm を利用しているので、これの autoLimit オプションを忘れずに指定しています。
autoLimit - Optional - This option allows you to regulate the request rate in order to avoid hitting the rate limit. Requests are limited using the token bucket algorithm. Accepted values are a boolean or a plain JavaScript object. When using an object, the calls property and the interval property specify the refill rate and the bucketSize property the bucket size. For example { calls: 2, interval: 1000, bucketSize: 35 } specifies a limit of 2 requests per second with a burst of 35 requests. When set to true requests are limited as specified in the above example. Defaults to false.
shopify-api-node/index.js#L74-L84 にて stopcock という npm を利用しているので、もし興味があればこれも併せてみてみると良いかもです。
if (options.autoLimit) {
const conf = transform(
options.autoLimit,
(result, value, key) => {
if (key === 'calls') key = 'limit';
result[key] = value;
},
{ bucketSize: 35 }
);
this.request = stopcock(this.request, conf);
Limit the execution rate of a function using the token bucket algorithm. Useful for scenarios such as REST APIs consumption where the amount of requests per unit of time should not exceed a given threshold.トークンバケットアルゴリズムを使用して、関数の実行速度を制限します。単位時間あたりのリクエスト数が特定の閾値を超えてはならないRESTAPIの消費などのシナリオに役立ちます。
引用元: stopcock - npm
以上、Shopify API の Rate Limit と上手く付き合いながら開発していきたい、現場からお送りしました。