# Variables API Variables API adalah key-value store cepat untuk state efemeral. Berbeda dengan memori (yang diindeks, dapat dicari, dan terstruktur), variabel dioptimalkan untuk akses baca/tulis cepat — sempurna untuk penghitung, flag, dan state sesi. ## Endpoint ### POST /var Menetapkan atau memperbarui variabel. ```bash curl -X POST https://synapse.schaefer.zone/var \ -H "Authorization: Bearer YOUR_MIND_KEY" \ -H "Content-Type: application/json" \ -d '{"key": "last_session_at", "value": "2026-06-27T14:00:00Z"}' ``` ### GET /var/:key Mengambil satu variabel. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var/last_session_at ``` Respons: ```json { "key": "last_session_at", "value": "2026-06-27T14:00:00Z", "updated_at": "..." } ``` ### GET /var Mendaftar semua variabel. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var ``` ### DELETE /var/:key Menghapus variabel. ```bash curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var/last_session_at ``` ## Kapan Menggunakan Variabel vs Memori | Kasus Penggunaan | Gunakan | |----------|-----| | Nama pengguna, preferensi | Memori (dapat dicari, terstruktur) | | Timestamp sesi terakhir | Variabel (state efemeral) | | Penghitung (mis. pesan terkirim) | Variabel (pembaruan sering) | | State alur kerja ("langkah 3 dari 5 selesai") | Variabel (sementara) | | Catatan proyek panjang | Memori (diindeks teks penuh) | | Skrip yang dapat digunakan kembali | Penyimpanan skrip (diberi nama, diberi versi) | ## Pola Umum ### Lacak sesi terakhir ```bash # Di akhir sesi curl -X POST .../var -d '{"key": "last_session_at", "value": "'$(date -Iseconds)'"}' # Di awal sesi LAST=$(curl .../var/last_session_at | jq -r .value) curl .../memory/diff?since=$(date -d "$LAST" +%s) ``` ### Pola penghitung ```bash # Increment N=$(curl .../var/api_calls | jq -r .value) curl -X POST .../var -d "{\"key\": \"api_calls\", \"value\": $((N+1))}" ``` ### Feature flags ```bash curl -X POST .../var -d '{"key": "feature_x_enabled", "value": "true"}' # Periksa ENABLED=$(curl .../var/feature_x_enabled | jq -r .value) if [ "$ENABLED" = "true" ]; then ... fi ``` ## Langkah Berikutnya - [Memory API](/docs/api/memory) — untuk data terstruktur yang dapat dicari - [Cron & Scheduler](/docs/api/cron)