blog Detail

API vs. WebSockets vs. WebHooks: Apa yang Harus Dipilih?

Ketika kita ingin membuat atau mengembangkan suatu aplikasi, maka kita membutuhkan mekanisme yang andal untuk menghubungkan antara komponen-komponen pendukung aplikasi. Kita dapat mengambil contoh pada aplikasi web, dimana kita membutuhkan suatu mekanisme untuk menghubungkan antara browser dan server. Terkadang, server juga butuh untuk mengirim kembali pesan/permintaan kepada browser. Selain itu, terdapat suatu kasus dimana backend yang dirancang atau dikembangkan sangat bergantung pada layanan lain yang membutuhkan waktu yang sangat lama.

Terdapat suatu metode yang dapat menangani hal tersebut. Meskipun metode-metode ini bertujuan untuk menfasilitasi komunikasi aplikasi dengan komponen lainnya, terdapat perbedaan yang signifikan diantara mereka.

 

API

API (Application Programming Interface) adalah suatu kontrak antara konsumen dan penyedia layanan yang dapat diekspos melalui HTTP.

API dapat bekerja dengan baik pada scenario seperti operasi CRUD dasar dari web, mobile, dan integrasi layanan ke layanan. Komunikasi yang dilakukan kebanyakan menggunakan JSON atau XML sebagai format untuk mengirim data.

Berikut adalah contoh skenario penggunaan API, dimana pengguna menggunakan mesin pencari untuk mencari produk pada website e-commerce.

 

Api Workflow

 

Proses dari API sendiri sangatlah simple, ketika pengguna ingin meminta apa yang diinginkan menggunakan kueri pencarian, pengguna akan mendapatkan response hanya dalam beberapa saat.

Namun, ketika server perlu berkomunikasi kembali dengan browser, tidak ada suatu metode langsung saat menggunakan API kecuali jika pada browser dilakukan pengecekan secara berkala untuk pembaruan apapun.

Contoh dari kasus lainnya seperti tugas pembuatan suatu laporan yang dapat membutuhkan waktu dan sumber daya yang lebih banyak. Oleh karena itulah ketika konsumen memberitahu penyedia layanan untuk membuat laporan tersebut, penyedia layanan tidak tahu bagaimana cara untuk menyelesaikannya karena tidak ada metode langsung. Browser mungkin perlu melakukan polling API secara terus-menerus.

 

WebSockets

Websockets mungkin dapat menjawab permasalahan yang dialami oleh API dengan memungkinkan komunikasi dua arah dan dilakukan secara terus-menerus antara konsumen dan penyedia layanan. Oleh karena itu penyedia layanan dan konsumen dapat mengirimkan pesan kapanpun, karena aplikasi yang didukung dengan Websocket dapat melakukan komunikasi real-time.

 

Websocket Workflow

 

Namun, dengan membuka semua koneksi sepanjang waktu dapat meningkatkan konsumsi sumber daya dan penggunaan daya (untuk platform mobile). Misalnya, kita akan mengambil contoh sama seperti API yaitu pembuatan laporan dimana dengan menerapkan WebSockets dapat mengatasi kekurangan yang dimiliki API. Namun, tidak sepenuhnya WebSockets berfungsi dengan baik, khususnya pada platform mobile, dimana membutuhkan teknologi seperti push notification. Selain itu, jika backend aplikasi yang dikembangkan bergantung pada layanan eksternal, maka WebSocket bukanlah solusi terbaik untuk fasilitas komunikasi backend ke layanan eksternal.

 

WebHooks

WebHooks mendukung solusi atas permasalahan yang dialami WebSocket dengan menyediakan suatu mekanisme, dimana dapat memtusukan penerimaan respon dari penyedia layanan.

Ketika kita melihat sisi teknisnya, konsumen yang mendaftarkan WebHook (callback URL) ke salah satu penyedia layanan, URL yang didaftarkan akan bertindak sebagai tempat untuk menerima data dari WebHook. Untuk kebanyakan kasus, URL tersebut merupakan milik server lain, dan WebHooks sebagaian besar digunakan untuk berkomunikasi antar server atau suatu proses backend.

Untuk proses WebHooks, jika kita menggali lebih dalam terpecah menjadi 4 proses.

Webhooks Workflow

  • Event Trigger: Event ini harus ditentukan untuk menjalankan WbHook. Ketika Event terjadi, maka WebHook akan melakukan tugasnya.
  • WebHook provider creates the WebHook and sends POST request: Penyedia WebHook bertanggung jawab untuk memantau event dan membuat WebHook. Ketika terdapat suatu Event, maka penyedia WebHook akan mengirimkan permintaan POST HTTP kepada aplikasi pihak ketiga.
  • Aplikasi pihak ketiga menerima data: Aplikasi pihak ketiga akan menerima data ke URL atau listener yang kita berikan kepada penyedia WebHook pada saat mendaftar.
  • Penentuan tindakan dalam aplikasi pihak ketiga: Ketika aplikasi menerima permintaan Post, tim pengembang dapat menggunakan data untuk apapun yang mereka inginkan.

 

Seperti yang telah dijelaskan sebelumnya, WebHooks, WebSockets, maupun API menfasilitasi komunikasi antara aplikasi dan komponen lainnya. Namun mereka memiliki perbedaan.

API adalah opsi terbaik dimana ketika aplikasi hanya memerlukan operasi CRUD dasar dan respon sinkron. API juga dapat digunakan untuk mengintegrasikan aplikasi web dan seluler atau layanan lainnya dengan mudah.

Namun, jika kita membuat suatu aplikasi web yang mememerlukan komunikasi secara real-time, maka kita harus memilih WebSockets. WebSockets dapat memungkinkan kita untuk membuat saluran komunikasi 2 arah antara browser yang digunakan dan backend.

WebHooks sedikit berbeda dari API dan WebSockets, karena ketika konsumen telah mendaftarkan URL WebHook di suatu penyedia layanan, maka konusmen tersebut dapat memanggil WebHook ketika diperlukan.

 

Refrensi

https://blog.bitsrc.io/apis-vs-websockets-vs-webhooks-what-to-choose-5942b73aeb9b

https://whosonlocation.com/why-you-should-be-using-webhooks/

https://zapier.com/blog/what-are-webhooks/

 

Ingin tahu informasi dan berita menarik lainnya, silahkan kunjungi website kami di :

https://fittechinova.com/

 

Dan jangan lupa follow media sosial kami yang lain

Instagram  : fittechinova

linkedin  : https://www.linkedin.com/company/fti-global

Facebook : Fit Tech Inova Global