Pengertian Webhook
Webhook biasa disebut sebagai panggilan balik atau callback HTTP untuk meneruskan informasi dari satu aplikasi ke aplikasi lain, data yang dikirimkan biasanya memakai format JSON atau XML. Informasi yang disediakan oleh webhook biasanya realtime ketika sebuah sistem membutuhkannya.
Webhook merupakan salah satu tools untuk berkomunikasi antar aplikasi atau sistem yang berbasis event. Artinya, transfer informasi baru ini dapat terjadi saat kamu memasukkan perintah, yang kemudian memicu tindakan lainnya.
Contoh penggunaan webhook adalah otomatisasi email menggunakan aplikasi email marketing.
Sebelumnya, ketika ada pengunjung yang telah membuat akun di sebuah website dan mengisi data diri, informasi tersebut akan disimpan pada database kamu. Lalu kamu dapat menggunakan informasi tersebut untuk mengirimkan email sambutan kepada member baru website.
Dengan webhook, kamu dapat meminta aplikasi email marketing untuk mengirimkan email sambutan setiap kali ada pengunjung yang menyelesaikan diri pada website kamu.
Webhook VS API
Webhook sering dibandingkan dengan API (Application Programming Interface) karena fungsinya yang hampir sama. Lalu, apa yang menjadi perbedaannya?
Otomatisasi
Perbedaan utama webhook dan API yakni pada cara kerjanya. Pengiriman data dengan webhook bisa dilakukan dengan otomatis.
Dalam kehidupan sehari-hari, cara kerja webhook HTTP ini dapat di ibaratkan dengan berlangganan majalah. Cukup sekali permintaan berlangganan, maka setiap kali ada edisi terbaru, penerbit majalah secara otomatis dapat mengirimkannya kepada kamu.
Cara kerja API memiliki sedikit perbedaan. Pengiriman data dalam sebuah komunikasi dapat dilakukan dari basis permintaan.
Performa
Perbedaan cara kerja menghasilkan performa yang berbeda.
Webhook memerlukan resource server yang lebih sedikit karena transfer data terjadi secara otomatis. Dengan begitu, aplikasi yang menggunakan callback HTTP tersebut cenderung memiliki performa yang lebih baik.
Sementara jika menggunakan API, performanya menjadi kurang optimal dikarenakan setiap permintaan data perlu dilakukan secara manual. Resource yang diperlukan pun tentu menjadi lebih banyak.
Keamanan
API memberikan keamanan yang lebih baik dibandingkan dengan webhook. Dengan API, aplikasi hanya perlu menerima informasi yang diminta saja. Artinya, jenis dan jumlah data yang masuk pun dapat di kontrol.
Webhook tidak mempunyai kendali atas jumlah dan interval data karena setiap prosesnya berjalan otomatis sesuai dengan request di awal. Jadi, server penerima rentan mengalami overload.
Kompatibilitas
Belum banyak yang aplikasi mendukung webhook. Berbeda dengan API yang sudah banyak didukung oleh berbagai aplikasi karena secara keamanan dianggap lebih baik.
Jadi, apabila komunikasi antar aplikasi menggunakan call back HTTP belum dapat dilakukan, kamu tetap bisa menggunakan API.
Bagaimana Cara Menggunakan Webhook?
Dilihat dari tujuannya, ada beberapa cara menggunakan webhook, yaitu:
1. Push
Pengunaan webhook yang sederhana adalah ketika sebuah aplikasi mampu mengirimkan informasi ke aplikasi lain dengan searah, tanpa perlu tindakan lebih lanjut.
Jadi, setelah dua aplikasi terhubung, aplikasi A dapat mengirim informasi ke aplikasi B sesuai dengan permintaan yang ditentukan sebelumnya.
Contoh penerapan metode push adalah notifikasi aplikasi di smartphone. Ketika teman kamu melakukan update status, terdapat informasi yang dikirimkan oleh server ke smartphone kamu sebagai pemberitauan.
2. Pipe
Dengan menggunakan pipe, sesudah informasi dikirim kepada penerima, penerima bisa melakukan tindakan lebih lanjut dengan menggunakan informasi awal yang diidapatkan.
Misalnya pada kasus email tentang abandoned cart yang biasa dikirimkan oleh situs marketplace.
Contoh ketika kamu menambahkan produk keranjang, tetapi tidak segera melakukan checkout. Marketplace menggunakan informasi ini untuk memberikan notifikasi pada kamu tentang pembelian yang belum diselesaikan.
3. Plugin
Komunikasi data dengan webhook juga dapat menggunakan plugin. Dengan begitu, transfer informasi dapat dilakukan dengan dua arah sesuai dengan hak akses yang dapat diatur pada pengaturan di plugin.