Admin API dan webhook dalam praktik
Integrasi terhadap Shopify sebagian besar adalah dua mekanisme: Admin API, yang Anda panggil untuk membaca dan menulis, dan webhook, yang memanggil Anda ketika sesuatu terjadi.
Keduanya mudah. Yang memisahkan integrasi yang andal dari yang tidak stabil adalah bagaimana Anda menangani kasus di mana mereka berperilaku buruk — dan mereka akan.
Dua mekanisme#
| Admin API | Webhook | |
|---|---|---|
| Arah | Anda memanggil Shopify | Shopify memanggil Anda |
| Baik untuk | Membaca status, menulis perubahan, backfill | Bereaksi terhadap peristiwa dengan segera |
| Mode kegagalan | Batas laju, perubahan versi | Duplikat, pengiriman tidak berurutan, peristiwa terlewat |
| Harus menangani | Percobaan ulang dan paginasi | Idempoten dan verifikasi |
Aturan yang membuat integrasi andal#
- Verifikasi setiap tanda tangan webhook sebelum mempercayai payload. Endpoint yang tidak diverifikasi adalah pintu terbuka.
- Buat setiap handler idempoten — peristiwa yang sama akan tiba dua kali pada akhirnya.
- Jangan asumsikan urutan. Pembatalan dapat tiba sebelum pembuatan yang Anda tunggu.
- Kembalikan dengan cepat dan proses secara asinkron; endpoint lambat akan dicoba ulang dan kemudian dinonaktifkan.
- Rekonsiliasi setiap hari terhadap API. Webhook melewatkan peristiwa; sapuan malam menangkap apa yang terlewat.
Batas laju adalah input desain#
Shopify mengukur akses API. Itu bukan hambatan untuk diatasi dengan percobaan ulang; itu adalah batasan untuk dirancang. Baca batch, minta hanya bidang yang Anda butuhkan, dan gunakan operasi massal untuk backfill alih-alih berjalan setiap produk satu panggilan pada satu waktu.
Jika integrasi Anda hanya berfungsi ketika tidak ada yang lain berjalan, itu tidak berfungsi. Uji saat impor sedang berlangsung.
Versi#
Versi API diberi tanggal dan kedaluwarsa. Masukkan peningkatan di kalender daripada menemukannya melalui kegagalan. Integrasi kecil membutuhkan satu jam untuk bergerak maju; yang telah melewatkan empat versi membutuhkan seminggu.
Pertanyaan yang sering diajukan
Webhook atau polling?
Webhook untuk kecepatan, rekonsiliasi berkala untuk kebenaran. Sebagian besar integrasi andal menggunakan keduanya.
Bagaimana cara menghentikan pemrosesan duplikat?
Simpan pengidentifikasi peristiwa dan abaikan pengulangan. Idempoten adalah kebiasaan paling berharga di sini.
Apa yang rusak pertama kali pada skala?
Batas laju, biasanya selama backfill yang berjalan catatan satu per satu alih-alih menggunakan operasi massal.
shopify admin apishopify webhookintegrasi shopifybatas laju api shopifyshopify graphql api