Admin API i webhooki w praktyce
Integracje z Shopify to głównie dwa mechanizmy: Admin API, które wywołujesz, by czytać i pisać, oraz webhooki, które wywołują cię, gdy coś się dzieje.
Oba są proste. To, co oddziela niezawodną integrację od niestabilnej, to sposób obsługi przypadków, gdy się źle zachowują — a będą.
Dwa mechanizmy#
| Admin API | Webhooki | |
|---|---|---|
| Kierunek | Ty wywołujesz Shopify | Shopify wywołuje ciebie |
| Dobre do | Odczyt stanu, zapis zmian, uzupełnienia | Szybkie reagowanie na zdarzenia |
| Tryb awarii | Limity zapytań, zmiany wersji | Duplikaty, dostarczanie poza kolejnością, pominięte zdarzenia |
| Musisz obsłużyć | Ponowne próby i stronicowanie | Idempotentność i weryfikację |
Zasady, które czynią integracje niezawodnymi#
- Weryfikuj każdy podpis webhooka przed zaufaniem zawartości. Niezweryfikowane endpointy to otwarte drzwi.
- Spraw, by każdy handler był idempotentny — to samo zdarzenie w końcu przyjdzie dwa razy.
- Nie zakładaj kolejności. Anulowanie może przyjść przed utworzeniem, na które czekałeś.
- Odpowiadaj szybko i przetwarzaj asynchronicznie; wolne endpointy są ponawiane, a potem wyłączane.
- Uzgadniaj codziennie z API. Webhooki pomijają zdarzenia; nocne sprawdzenie łapie to, co umknęło.
Limity zapytań to element projektowania#
Shopify mierzy dostęp do API. To nie przeszkoda do obejścia ponownymi próbami; to ograniczenie, dla którego trzeba projektować. Grupuj odczyty, żądaj tylko potrzebnych pól i używaj operacji zbiorczych do uzupełnień zamiast przechodzić przez każdy produkt jednym wywołaniem na raz.
Jeśli twoja integracja działa tylko wtedy, gdy nic innego nie jest uruchomione, to nie działa. Testuj ją podczas trwającego importu.
Wersjonowanie#
Wersje API są datowane i wygasają. Umieść aktualizację w kalendarzu zamiast odkrywać ją przez awarię. Mała integracja zajmuje godzinę do przeniesienia; taka, która pominęła cztery wersje, zajmuje tydzień.
Najczęstsze pytania
Webhooki czy odpytywanie?
Webhooki dla szybkości, okresowe uzgadnianie dla poprawności. Najbardziej niezawodne integracje używają obu.
Jak zatrzymać duplikowanie przetwarzania?
Przechowuj identyfikator zdarzenia i ignoruj powtórzenia. Idempotentność to najcenniejszy nawyk tutaj.
Co psuje się pierwsze przy skali?
Limity zapytań, zwykle podczas uzupełniania, które przechodzi przez rekordy jeden na raz zamiast używać operacji zbiorczych.
shopify admin apishopify webhookiintegracja shopifylimity api shopifyshopify graphql api