| REST API | Webhook API | |
|---|---|---|
| Pola | Pull-based | Push-based |
| Siapa yang memulai | Client mengambil data dari Mertani | Mertani mengirim data ke client |
| Kapan digunakan | Saat butuh kontrol penuh atas waktu dan format data | Saat butuh data segera setelah tersedia |
1. REST API (Pull-Based)
Client secara aktif mengambil data dari server Mertani melalui HTTPGET request.


Cara Kerja
Client mengirim request
Client melakukan HTTP
GET ke endpoint API Mertani, dengan parameter seperti device_id atau filter timestamp.Backend membaca database
Server Mertani membaca data yang tersimpan di database. Data tidak diambil langsung dari device.
Ringkasan
| Aspek | Detail |
|---|---|
| Metode HTTP | GET |
| Pola | Client mengontrol kapan data diambil |
| Tipe data | Historis, agregasi, snapshot |
| Real-time | Tidak — bergantung pada interval polling |
| Kompleksitas setup | Rendah — tidak memerlukan endpoint publik |
Use Case
- Dashboard monitoring & visualisasi
- Data analytics dan reporting
- Integrasi BI tools
- Sinkronisasi data terjadwal
2. Webhook API (Push-Based)
Mertani secara otomatis mengirim data ke endpoint client setiap kali ada data baru dari device.

Cara Kerja
Ringkasan
| Aspek | Detail |
|---|---|
| Metode HTTP | POST |
| Pola | Server mengirim data saat event terjadi |
| Tipe data | Real-time, event-driven |
| Real-time | Ya — data dikirim segera setelah tersedia |
| Kompleksitas setup | Lebih tinggi — memerlukan endpoint publik yang stabil |
Use Case
- Sistem notifikasi dan alerting
- Monitoring real-time
- Integrasi event-driven system
- Automation pipeline
Perbandingan REST API vs Webhook
| Aspek | REST API | Webhook API |
|---|---|---|
| Pola komunikasi | Pull | Push |
| Pemicu | Request dari client | Event dari sistem |
| Real-time | Tidak langsung | Ya |
| Beban infrastruktur | Di sisi client (polling) | Di sisi server penerima |
| Kebutuhan endpoint publik | Tidak | Ya |
| Kompleksitas setup | Rendah | Menengah |
| Tipe data | Historis & agregasi | Event terbaru |
| Cocok untuk | Dashboard, report, analytics | Alerting, automation, streaming |
REST API dan Webhook dapat digunakan secara bersamaan. Contoh umum: gunakan REST API untuk menampilkan data historis di dashboard, dan Webhook untuk memicu notifikasi real-time saat threshold terlampaui.
Best Practice
REST API
- Gunakan parameter
timestampfilter untuk menghindari pengambilan data yang tidak diperlukan - Sesuaikan interval polling dengan interval pengiriman device (hindari polling lebih sering dari data yang tersedia)
- Terapkan caching di sisi client untuk mengurangi beban request
Webhook
- Pastikan endpoint memiliki high availability — request yang gagal direspons dapat memicu retry dari server
- Implementasikan idempotency untuk menangani kemungkinan data duplikat akibat retry
- Validasi setiap incoming request menggunakan signature atau token untuk keamanan