> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docku.mertani.com/llms.txt.
> For full documentation content, see https://docku.mertani.com/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docku.mertani.com/_mcp/server.

# Integration Method

## Overview

Mertani menyediakan dua metode utama untuk integrasi data, yang dirancang untuk kebutuhan konsumsi data yang berbeda:

1. **REST API (Pull-Based)** → Client mengambil data dari Mertani
2. **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:

### **Data Logger** mengumpulkan data dari sensor

### Data dikirim melalui **Gateway**

### Diterima oleh **Mertani Backend**

### Disimpan di **Database**

### Data dapat diakses melalui `REST API Mertani`

***

## 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

| **Feature**  | **REST API**      | **Webhook API**       |
| ------------ | ----------------- | --------------------- |
| Model        | Pull              | Push                  |
| Trigger      | Client request    | Event dari sistem     |
| Real-time    | Tidak langsung    | Ya                    |
| Beban Server | Di client         | Di server penerima    |
| Kompleksitas | Lebih sederhana   | Perlu endpoint publik |
| Use Case     | Dashboard, report | Alerting, automation  |

***

## 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