Integration Method
Overview
Mertani menyediakan dua metode utama untuk integrasi data, yang dirancang untuk kebutuhan konsumsi data yang berbeda:
- REST API (Pull-Based) → Client mengambil data dari Mertani
- Webhook API (Push-Based) → Mertani mengirim data ke client
Kedua metode ini berjalan di atas arsitektur yang sama, namun memiliki pola komunikasi yang berbeda.
Alur utama:
1. REST API (Pull-Based)
Pada metode ini, client secara aktif mengambil data dari server Mertani melalui endpoint API.

Cara Kerja
- Client mengirim request ke endpoint API
- Backend membaca data dari database
- Data dikembalikan dalam format JSON
Karakteristik
- Request-based (GET)
- Bersifat pull (client yang mengontrol pengambilan data)
- Mendukung data historis dan agregasi
- Tidak real-time (tergantung interval polling)
Use Case
- Dashboard monitoring
- Data analytics
- Reporting
- Integrasi BI tools
2. Webhook API (Push-Based)
Pada metode ini, Mertani akan secara otomatis mengirim data ke endpoint milik client setiap kali ada data baru.

Cara Kerja
- Device mengirim data ke backend
- Backend memproses data
- Backend melakukan HTTP POST ke endpoint client
- Client menerima data secara langsung
Karakteristik
- Event-driven (POST)
- Bersifat push (server yang mengirim data)
- Mendukung real-time data streaming
- Tidak memerlukan polling
Use Case
- Sistem notifikasi / alerting
- Monitoring real-time
- Integrasi event-driven system
- Automation pipeline
Perbandingan REST API vs Webhook
Behavior Sistem
- Kedua metode membaca data dari sumber yang sama (database Mertani)
- REST API tidak pernah mengambil data langsung dari device
- Webhook hanya aktif jika dikonfigurasi
- Data yang dikirim mengikuti interval dari device
REST API dan Webhook dapat digunakan bersamaan untuk kebutuhan yang berbeda, misalnya dashboard menggunakan REST API dan alert system menggunakan Webhook.
Best Practice Integrasi
Untuk implementasi optimal:
REST API
- Gunakan parameter timestamp filter untuk efisiensi
- Hindari polling terlalu sering
- Gunakan caching untuk performa
Webhook
- Pastikan endpoint memiliki high availability
- Implementasikan retry mechanism
- Validasi request (signature/token) untuk keamanan

