Shopify API Fetcher
From: BSS Group > BSS Commerce > Division Shopify/Blockchain
API References
-
BucketManager
: Manage Token bucket rate limiter of active store
-
initializeAll: (activeStores: Shop[]) => number;
: Initialize rate limiter for all given stores
-
initializeOne: (domain: string) => TokenBucketRateLimiter
: Initialize rate limiter for specific domain
-
get: (domain: string) => TokenBucketRateLimiter
: Get initialized rate limiter of a specific domain
-
clear: (domain: string) => void
: Clear rate limiter of a specific domain, used when app is uninstalled
-
safeFetch: (domain: string, url: RequestInfo, params?: RequestInit) => Promise<Response>
: use this instead of normal fetch
, with additional parameter domain
, which specify a store.
Example
const { GraphQL, Rest } = require("@bss-sbc/shopify-api-fetcher");
const DOMAIN="...replace this....myshopify.com"
const TOKEN="...replace this..."
const API_VERSION="2022-10"
async function main() {
await GraphQL.safeFetch(DOMAIN, TOKEN, {
query: `
query queryShop {
shop {
name
email
contactEmail
myshopifyDomain
ianaTimezone
currencyCode
currencyFormats {
moneyFormat
}
}
}
`,
}).then(data => console.log(JSON.stringify(data)));
await Rest.safeFetch(DOMAIN, `https://${DOMAIN}/admin/api/${API_VERSION}/shop.json`, {
method: "GET",
headers: {
"Content-Type": "application/json",
'X-Shopify-Access-Token': TOKEN,
}
}).then(response => response.json()).then(data => console.log(JSON.stringify(data)));
}
main().finally(() => {
process.exit(0);
});
Roadmap
Because of numbers of services
, it is difficult to listen to app/uninstalled
webhook event. So, auto clear bucket is necessary