Webhook
HTTP callback yang dikirim server ke aplikasi kamu saat event tertentu terjadi.
Webhook adalah mekanisme di mana satu sistem (provider) mengirim HTTP request ke URL aplikasi kamu secara otomatis saat event tertentu terjadi — ‘tolong kabari saya kalau X terjadi’. Berbeda dengan polling (aplikasi kamu terus-terusan ngecek ‘ada update?’), webhook adalah push-based (provider yang menghubungi kamu). Contoh: Stripe kirim webhook saat pembayaran sukses, GitHub kirim webhook saat ada push ke repository, Twilio kirim webhook saat SMS diterima. Implementasi webhook: Provider konfigurasi URL endpoint kamu → event terjadi → provider kirim HTTP POST ke URL kamu dengan payload event → aplikasi kamu proses dan kirim response 2xx. Security: verifikasi signature webhook (Stripe, GitHub kirim signature header untuk memastikan request berasal dari mereka).
Contoh Kode
// Webhook handler dengan Hono
app.post('/webhooks/stripe', async (c) => {
const payload = await c.req.text();
const signature = c.req.header('stripe-signature');
// Verifikasi signature
const event = stripe.webhooks.constructEvent(
payload, signature, webhookSecret
);
if (event.type === 'payment_intent.succeeded') {
await fulfillOrder(event.data.object);
}
return c.json({ received: true });
});