Mertani menyediakan dua metode integrasi data yang dirancang untuk kebutuhan berbeda:
REST APIWebhook API
PolaPull-basedPush-based
Siapa yang memulaiClient mengambil data dari MertaniMertani mengirim data ke client
Kapan digunakanSaat butuh kontrol penuh atas waktu dan format dataSaat butuh data segera setelah tersedia
Kedua metode membaca dari sumber data yang sama (database Mertani) dan dapat digunakan secara bersamaan — misalnya REST API untuk dashboard dan Webhook untuk sistem alerting.

1. REST API (Pull-Based)

Client secara aktif mengambil data dari server Mertani melalui HTTP GET request.
Diagram alur REST APIDiagram alur REST API

Cara Kerja

1

Client mengirim request

Client melakukan HTTP GET ke endpoint API Mertani, dengan parameter seperti device_id atau filter timestamp.
2

Backend membaca database

Server Mertani membaca data yang tersimpan di database. Data tidak diambil langsung dari device.
3

Response dikembalikan

Data dikembalikan ke client dalam format JSON.

Ringkasan

AspekDetail
Metode HTTPGET
PolaClient mengontrol kapan data diambil
Tipe dataHistoris, agregasi, snapshot
Real-timeTidak — bergantung pada interval polling
Kompleksitas setupRendah — 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.
Diagram alur Webhook APIDiagram alur Webhook API

Cara Kerja

1

Device mengirim data

Device mengirim data ke backend Mertani sesuai interval yang dikonfigurasi.
2

Backend memproses data

Data divalidasi, dinormalisasi, dan disimpan ke database.
3

Backend mengirim ke client

Backend melakukan HTTP POST ke endpoint client yang sudah didaftarkan.
4

Client menerima data

Client memproses data secara langsung tanpa perlu melakukan request.

Ringkasan

AspekDetail
Metode HTTPPOST
PolaServer mengirim data saat event terjadi
Tipe dataReal-time, event-driven
Real-timeYa — data dikirim segera setelah tersedia
Kompleksitas setupLebih 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

AspekREST APIWebhook API
Pola komunikasiPullPush
PemicuRequest dari clientEvent dari sistem
Real-timeTidak langsungYa
Beban infrastrukturDi sisi client (polling)Di sisi server penerima
Kebutuhan endpoint publikTidakYa
Kompleksitas setupRendahMenengah
Tipe dataHistoris & agregasiEvent terbaru
Cocok untukDashboard, report, analyticsAlerting, 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 timestamp filter 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