Artikel

Apa itu webhook dan bagaimana Anda menggunakannya?

Webhook memungkinkan aplikasi berbasis web untuk berinteraksi melalui penggunaan callback khusus.

Menggunakan webhook memungkinkan aplikasi web berkomunikasi secara otomatis dengan aplikasi web lainnya.

Tidak seperti sistem tradisional di mana satu sistem (subjek) terus memilih sistem lain (pengamat) untuk beberapa data, webhook memungkinkan pengamat untuk secara otomatis memasukkan data ke dalam sistem subjek setiap kali suatu peristiwa terjadi.

Ini menghilangkan kebutuhan untuk pemantauan konstan oleh subjek. Webhook beroperasi sepenuhnya di Internet dan oleh karena itu semua komunikasi antar sistem harus dilakukan dalam bentuk pesan HTTP.

Menggunakan webhook

Webhook mengandalkan keberadaan URL statis yang mengarah ke API di sistem subjek yang perlu diberi tahu saat terjadi peristiwa di sistem pengamat. Contohnya adalah aplikasi web yang dirancang untuk mengumpulkan dan mengelola semua pesanan yang ditempatkan di akun Amazon pengguna. Dalam skenario ini, Amazon bertindak sebagai pengamat dan Webapp Manajemen Pesanan Khusus bertindak sebagai subjek.

Alih-alih membuat aplikasi web khusus secara berkala memanggil API Amazon untuk memeriksa pesanan yang dibuat, webhook yang dibuat di aplikasi web khusus akan memungkinkan Amazon untuk secara otomatis mengirimkan pesanan yang baru dibuat di aplikasi web melalui URL terdaftar. Oleh karena itu, untuk mengaktifkan penggunaan webhook, subjek harus memiliki URL khusus yang menerima pemberitahuan peristiwa dari pengamat. Ini mengurangi beban yang signifikan pada objek karena panggilan HTTP dilakukan antara kedua pihak hanya ketika suatu peristiwa terjadi.

Sistem berbasis polling vs sistem berbasis webhook

Setelah webhook subjek dipanggil oleh pengamat, subjek dapat mengambil tindakan yang sesuai dengan data yang baru dikirimkan ini. Biasanya, webhook dilakukan melalui permintaan POST ke URL tertentu. Permintaan POST memungkinkan Anda mengirim informasi tambahan ke objek. Selain itu, ini juga dapat digunakan untuk mengidentifikasi di antara sejumlah kemungkinan peristiwa alih-alih membuat URL webhook terpisah untuk setiap peristiwa.

alur kerja webhook

Untuk mengimplementasikan inbound webhook pada aplikasi Anda, Anda perlu melakukan langkah-langkah dasar berikut:

  • Ekspos titik akhir API di server aplikasi Anda yang menerima dan memproses panggilan HTTP POST
  • Berikan akses ke titik akhir ini untuk calon pengguna webhook. Titik akhir API akan memanggil aplikasi sumber data setiap kali kondisi yang relevan terpenuhi.
  • Proses data POST dan kembalikan respons ke inisiator panggilan webhook untuk menunjukkan status. Langkah ini mungkin ada atau tidak ada.

Webhook vs. API

Baik webhook dan API memiliki tujuan membangun komunikasi antar aplikasi. Namun, ada beberapa kelebihan dan kekurangan menggunakan Webhook dibandingkan API untuk mencapai integrasi aplikasi.

Buletin inovasi
Jangan lewatkan berita terpenting tentang inovasi. Daftar untuk menerimanya melalui email.

Webhook cenderung menjadi solusi yang lebih baik jika poin-poin berikut ini lebih relevan dengan sistem yang diimplementasikan:

  • Jika data sering diperbarui di server, webhook cenderung menjadi solusi yang lebih baik karena panggilan API yang tidak perlu dari klien ke server dihilangkan. Menurut resthooks.com, 98,5% survei API sia-sia.
  • Webhook memungkinkan solusi yang lebih baik untuk sistem yang memerlukan pembaruan data mendekati waktu nyata. Jajak pendapat API biasanya berjalan pada interval yang ditetapkan yang dapat mencegah pembaruan data langsung. Dengan webhook, pembaruan dikirim dari server ke klien segera setelah webhook dipicu.

Menggunakan API harus lebih disukai daripada webhook dalam beberapa situasi lain.

Hal-hal yang perlu dipertimbangkan

Hal-hal penting yang perlu dipertimbangkan untuk menggunakan API di Webhook adalah:

  • Menggunakan API memungkinkan lebih banyak penyesuaian kapan polling data dari server dan juga berapa banyak data polling dari server. Jumlah data yang akan disurvei diatur oleh ukuran polling API. Dengan webhook, server biasanya memutuskan data dan waktu pengirimannya.
  • Untuk sistem dengan data yang sangat bervariasi (seperti sistem real-time, sistem IoT, dll.), polling berbasis API mungkin merupakan opsi yang lebih baik karena untuk setiap panggilan API, ada kemungkinan besar respons yang dapat digunakan.
  • Ada kemungkinan data yang dikirim dari server, melalui webhook, akan diabaikan sepenuhnya oleh klien jika titik akhir REST sedang offline. Jika server tidak memiliki mekanisme untuk mencoba lagi dorongan yang gagal tersebut, pembaruan data akan hilang sama sekali.

Untuk mengatasi kemungkinan kehilangan data yang dikirim dari server saat webhook offline, Anda dapat menggunakan antrean perpesanan acara untuk mengarsipkan panggilan tersebut. Contoh platform yang menyediakan fungsionalitas tersebut antara lain RabbitMQ o Layanan Antrean Sederhana Amazon (SQS). Keduanya dirancang untuk bertindak sebagai fasilitas penyimpanan perpesanan perantara yang menghindari kemungkinan hilangnya panggilan webhook.

Ercole Palmeri

Buletin inovasi
Jangan lewatkan berita terpenting tentang inovasi. Daftar untuk menerimanya melalui email.

Artikel Terbaru

Intervensi inovatif dalam Augmented Reality, dengan penampil Apple di Poliklinik Catania

Operasi oftalmoplasti menggunakan penampil komersial Apple Vision Pro dilakukan di Poliklinik Catania…

3 Mei 2024

Manfaat Halaman Mewarnai untuk Anak - dunia keajaiban untuk segala usia

Mengembangkan keterampilan motorik halus melalui mewarnai mempersiapkan anak untuk keterampilan yang lebih kompleks seperti menulis. Mewarnai…

2 Mei 2024

Masa Depan Ada di Sini: Bagaimana Industri Perkapalan Merevolusi Perekonomian Global

Sektor angkatan laut adalah kekuatan ekonomi global sejati, yang telah menuju pasar 150 miliar...

1 Mei 2024

Penerbit dan OpenAI menandatangani perjanjian untuk mengatur aliran informasi yang diproses oleh Kecerdasan Buatan

Senin lalu, Financial Times mengumumkan kesepakatan dengan OpenAI. FT melisensikan jurnalisme kelas dunianya…

April 30 2024