Tulisan ini merupakan kelanjutan dari pembahasan pengolahan data REALTIME antares menggunakan MQTT (dapat dibaca disini ). Lalu bagaimana jika pengolahan datanya dilakukan oleh script yang tidak mengenal event based seperti API ? Tenang saja ternyata tombol SUBSCRIBE pada console device antares merupakan fasilitas pengolahan data bernama WEBHOOK. Apa itu ? Mari kita tanya chatGPT.
Breaking news: Telkom akan melakukan migrasi LoRaWan ke Telkomiot.id, Silahkan baca disini
API (Application Programming Interface):
API (Application Programming Interface) adalah kumpulan aturan yang memungkinkan satu aplikasi perangkat lunak berinteraksi dengan aplikasi lainnya. API menyediakan cara bagi sistem perangkat lunak yang berbeda untuk berkomunikasi satu sama lain dengan mendefinisikan metode dan format data yang dapat digunakan aplikasi untuk meminta dan bertukar informasi. API bisa digunakan untuk mengambil data, melakukan tindakan, atau mengintegrasikan fungsionalitas dari satu sistem ke sistem lainnya. Biasanya melibatkan mekanisme permintaan-respons, di mana aplikasi mengirim permintaan data atau aksi ke API, dan API mengembalikan respons.
Webhook:
Webhook, di sisi lain, adalah mekanisme bagi aplikasi web untuk memberikan informasi secara real-time kepada aplikasi atau sistem lainnya. Berbeda dengan API yang bergantung pada aplikasi untuk melakukan permintaan informasi, webhook mengirim data secara otomatis dari satu aplikasi ke aplikasi lainnya ketika terjadi peristiwa atau pemicu tertentu. Webhook adalah cara bagi aplikasi untuk memberi tahu satu sama lain tentang peristiwa atau pembaruan tanpa memerlukan polling terus-menerus untuk informasi. Ketika peristiwa yang telah ditentukan terjadi, aplikasi yang meng-host webhook akan mengirim permintaan HTTP POST ke URL tertentu, biasanya berisi data yang relevan dengan peristiwa tersebut.
Perbedaan:
Perbedaan kunci antara API dan webhook terletak pada arah komunikasi dan mekanisme pemicu:
- API umumnya melibatkan model permintaan-respons di mana aplikasi secara aktif meminta data atau aksi dari titik akhir yang telah ditentukan aplikasi lain.
- Webhook beroperasi dalam model push, di mana data secara otomatis dikirim dari satu aplikasi ke aplikasi lain berdasarkan peristiwa atau pemicu tertentu tanpa perlu permintaan yang berkelanjutan.
Jadi, API digunakan untuk permintaan dan respons sesuai kebutuhan, sementara webhook digunakan untuk notifikasi peristiwa real-time dan berbagi data antar aplikasi.
Untuk mencobanya (pertama kali bagi saya) mari kita lanjutkan praktek simulasi data IOT - python dari google colab (tulisan saya sebelumnya) menuju kke antares, dan kemudian kita gunakan layanan testing webhookd bernama REQUESTCATCHER.
1. Buat alamat endpoint webhooks anda secara gratis di website requestcatcher.com
2. Masukkan endpoint webhooks di tombol subscribe pada console device antares. Dan masukkan seperti contoh pada gambar alamatnya https://ahocool.requestcatcher.com/test
3. Jalankan script simulasi pengiriman data suhu dan kelembaban pada google colab dan perhatikan data yang masuk pada console antares akan muncul juga pada alamat requestcatcher secara realtime.
Lalu bagaimana pengolahan datanya agar lebih berguna , secara endpoint nya memerlukan server dan pengolahanya pun di servercloud ? Tenang ! Ternyata google sheets memiliki fasilitas ekstensi / addons yang beranama "webhooks for sheets". Banyak video membahas cara registrasi dan setingnya, pada intinya ikuti langkah-langkah pada google sheets terutama pada bagian pengaktifkan scripts pada akun google anda.
1. Lakukan setting webhook paga google sheets kamu sampai muncul gambar astronot seperti dibawah ini. Link yang ada dibawahnya merupakan ENDPOINT dari webhooknya.
2. Lakukan subscribe pada antares dan masukkan endpoint webhooks dari google sheets.
3. Jika subscribe berhasil akan muncul tampilan testing seperti berikut :
5. Perlu parsing teks serta pengolahan jenis data yang tepat sehingga data yang masuk bisa menjadi NUMBER sebagai syarat agar bisa dimasukkan ke CHART / GRAFIK.
6. Hasilnya grafik realtime dapat di nikmati oleh yang memerlukan data.