व्यवहार में Admin API और webhooks
Shopify के खिलाफ integrations ज्यादातर दो तंत्र हैं: Admin API, जिसे आप पढ़ने और लिखने के लिए call करते हैं, और webhooks, जो आपको call करते हैं जब कुछ होता है।
दोनों सीधे हैं। जो एक विश्वसनीय integration को एक अस्थिर से अलग करता है वह यह है कि आप उन मामलों को कैसे संभालते हैं जहां वे गलत व्यवहार करते हैं — और वे करेंगे।
दो तंत्र#
| Admin API | Webhooks | |
|---|---|---|
| दिशा | आप Shopify को call करते हैं | Shopify आपको call करता है |
| अच्छा है | State पढ़ना, परिवर्तन लिखना, backfills | Events पर तुरंत प्रतिक्रिया देना |
| Failure mode | Rate limits, version परिवर्तन | Duplicates, out-of-order delivery, छूटे events |
| संभालना होगा | Retries और pagination | Idempotency और verification |
नियम जो integrations को विश्वसनीय बनाते हैं#
- Payload पर भरोसा करने से पहले हर webhook signature को verify करें। Unverified endpoints एक खुला दरवाजा हैं।
- हर handler को idempotent बनाएं — एक ही event अंततः दो बार आएगा।
- Order मत मानिए। एक cancellation उस creation से पहले आ सकता है जिसका आप इंतजार कर रहे थे।
- जल्दी return करें और asynchronously process करें; धीमे endpoints को retry किया जाता है और फिर disable कर दिया जाता है।
- API के खिलाफ दैनिक reconcile करें। Webhooks events चूक जाते हैं; एक रात की sweep जो फिसल गया उसे पकड़ लेती है।
Rate limits एक design input हैं#
Shopify API access को meter करता है। यह retries के साथ काम करने के लिए कोई बाधा नहीं है; यह एक constraint है जिसके लिए design करना है। Batch reads, केवल वे fields request करें जिनकी आपको आवश्यकता है, और backfills के लिए bulk operations का उपयोग करें बजाय हर product को एक बार में एक call करके चलने के।
अगर आपका integration केवल तभी काम करता है जब कुछ और नहीं चल रहा है, तो यह काम नहीं करता। इसे test करें जबकि एक import progress में है।
Versioning#
API versions dated हैं और expire होते हैं। Upgrade को calendar में रखें बजाय इसे एक failure के माध्यम से खोजने के। एक छोटा integration आगे बढ़ने में एक घंटा लेता है; जिसने चार versions छोड़ दिए हैं वह एक सप्ताह लेता है।
अक्सर पूछे जाने वाले प्रश्न
Webhooks या polling?
Promptness के लिए webhooks, correctness के लिए एक periodic reconciliation। सबसे विश्वसनीय integrations दोनों का उपयोग करते हैं।
मैं duplicate processing कैसे रोकूं?
Event identifier store करें और repeats को ignore करें। Idempotency यहां सबसे मूल्यवान आदत है।
Scale पर पहले क्या टूटता है?
Rate limits, आमतौर पर एक backfill के दौरान जो bulk operations का उपयोग करने के बजाय एक बार में एक records चलता है।
shopify admin apishopify webhooksshopify integrationshopify api rate limitsshopify graphql api