Skip to main content
Mertani menyediakan dua metode integrasi data yang dirancang untuk kebutuhan berbeda: 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

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

Use Case

  • Sistem notifikasi dan alerting
  • Monitoring real-time
  • Integrasi event-driven system
  • Automation pipeline

Perbandingan REST API vs Webhook

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
Last modified on July 28, 2026