Webhook adalah cara sebuah aplikasi mengirim pemberitahuan melalui HTTP ke alamat yang sudah didaftarkan ketika peristiwa tertentu terjadi. Misalnya, toko online dapat mengabari sistem gudang saat pesanan siap diproses. Gudang menerima kabar ketika ada perubahan, sehingga tidak perlu terus menanyakan apakah ada pesanan baru.
Bagaimana Cara Kerja Webhook?
Pengirim menyediakan daftar peristiwa yang bisa diikuti, seperti pesanan dibuat atau pengiriman diperbarui. Penerima menyediakan alamat tujuan yang disebut endpoint. Saat peristiwa yang dipilih terjadi, pengirim mengirim permintaan HTTP ke alamat tersebut. Isinya disebut payload, yang dapat memuat jenis peristiwa, nomor pesanan, atau data lain sesuai dokumentasi pengirim.
Penerima memeriksa pesan dan memberi respons sesuai ketentuan layanan. Setelah menerima pesan, aplikasi dapat mencatatnya untuk diproses, misalnya mengambil rincian pesanan dan memasukkannya ke antrean gudang. Respons yang menyatakan pesan diterima belum membuktikan bahwa barang sudah disiapkan atau dikirim.
Contoh Webhook Pada Pesanan Toko
Dalam contoh ini, toko mengirim peristiwa ketika pesanan berstatus siap diproses. Pesan berisi nomor pesanan P-271 dan identitas peristiwa. Aplikasi gudang memeriksa asal pesan, lalu menggunakan nomor pesanan untuk mengambil rincian barang jika rincian itu belum tersedia dalam payload.
Bila pesan P-271 terkirim lagi, gudang memeriksa catatan pemrosesan sebelum membuat tugas baru. Satu pemberitahuan yang datang dua kali tetap mewakili peristiwa yang sama. Langkah ini penting agar satu pesanan tidak menghasilkan dua tugas pengambilan barang.
Apa Bedanya Webhook Dengan Polling?
Pada polling, aplikasi gudang meminta informasi secara berkala, misalnya setiap beberapa menit. Pada webhook, sistem toko memulai pengiriman ketika peristiwa yang dipilih terjadi. Webhook dapat mengurangi permintaan yang hanya menghasilkan jawaban bahwa belum ada perubahan. Polling tetap berguna bila layanan sumber tidak menyediakan webhook atau bila tim perlu mencocokkan catatan secara berkala.
Webhook dan API dapat dipakai bersama. Dalam contoh toko tadi, webhook memberi kabar bahwa pesanan berubah, sedangkan permintaan API mengambil keadaan pesanan terbaru. Pilihan metode lain tersedia dalam panduan integrasi SaaS.
Apa Yang Terjadi Jika Pengiriman Gagal?
Koneksi dapat putus, alamat penerima dapat tidak tersedia, atau aplikasi bisa menerima peristiwa dalam urutan yang berbeda dari urutan terjadinya. Ketentuan pengiriman ulang bergantung pada penyedia. Karena itu, tim perlu mengetahui cara melihat kegagalan, mengirim ulang bila didukung, dan mencocokkan kembali data dengan sumbernya.
Jangan hanya mengandalkan urutan kedatangan pesan untuk menentukan status pesanan. Jika suatu perubahan dapat membatalkan perubahan lain, baca keadaan terbaru dari sistem sumber atau gunakan informasi versi yang memang disediakan. Catat identitas peristiwa dan hasil pemrosesan supaya gangguan bisa ditelusuri.
Apa Yang Perlu Disiapkan Sebelum Menggunakan Webhook?
- Pilih peristiwa yang benar-benar membutuhkan tindak lanjut dan tentukan aplikasi yang menjadi sumber status.
- Gunakan HTTPS dan verifikasi keaslian pesan dengan mekanisme yang didokumentasikan penyedia, misalnya tanda tangan yang diperiksa dengan rahasia bersama.
- Uji pesan ganda, gangguan penerima, dan pemulihan data sebelum mengandalkan alur tersebut dalam pekerjaan harian.
- Tentukan siapa yang memeriksa kegagalan dan bagaimana staf mengetahui bahwa pekerjaan lanjutan sudah selesai.
Untuk pertanyaan awal mengenai integrasi aplikasi Layana, hubungi Stella melalui WhatsApp di 0818-0425-1557.
Rujukan teknis tersedia pada dokumentasi webhook GitHub dan praktik penanganan pengiriman GitHub.