Bab 13 · Developer API
Batasan, Versi & Rencana
Apa yang sengaja tidak ada di API v1 dan alasannya, janji kompatibilitas versi, serta daftar rencana pengembangan berikutnya.
Yang sengaja tidak ada di v1
Bukan karena terlewat — masing-masing punya alasan.
| Tidak tersedia | Alasan |
|---|---|
| Endpoint tulis (buat, ubah, hapus) | Perlu rancangan tersendiri: kunci idempotensi, validasi setara aplikasi, dan pencatatan audit. Menempelkannya ke rancangan baca hanya akan menghasilkan API yang rapuh |
| HPP, harga modal, harga supplier | Data margin. Di dalam aplikasi pun dilindungi izin terpisah, jadi tidak pantas terbuka lewat key yang berakses penuh |
| Resep kacamata dan rekam medis pelanggan | Data kesehatan, kelas paling sensitif dalam sistem. Menunggu dukungan scoped key |
| Pembelian, kas kecil, biaya | Sisi pengeluaran belum diekspos. Ini item nomor satu di daftar rencana |
| Data dokter dan komisi | Data penggajian dan kemitraan internal |
| Harga per cabang atau per supplier | Ada di rencana |
| Gambar barang, atribut Lensiro Fit | Belum ada permintaan |
| Riwayat pesan WhatsApp atau email pelanggan | Data komunikasi pribadi |
| Webhook atau notifikasi dorong | v1 murni polling. Webhook butuh infrastruktur pengiriman ulang dan penanganan gagal kirim |
| Scope dan pembatasan cabang pada key | Satu key berarti akses baca penuh. Karena setiap klien punya server sendiri, pemegang key adalah pemilik datanya |
Kalau Anda perlu memberi akses ke pihak ketiga yang tidak boleh melihat semua data, tunggu dukungan scoped key. Jangan memberikan key penuh Anda.
Batas teknis
| Batas | Nilai |
|---|---|
| Request per menit per key | 60 |
| Request per menit per IP | 120 |
| Baris per halaman | default 100, maksimal 500 |
Baris /warehouse/items/{id}/stocks | sampai 1000, tanpa paginasi |
| Metode HTTP | GET saja |
Janji kompatibilitas
Selama masih di /api/v1:
- Field baru bisa muncul kapan saja tanpa pemberitahuan. Klien Anda harus mengabaikan field yang tidak dikenal.
- Field yang sudah ada tidak akan diganti nama, dihapus, atau berubah tipe.
- Nilai enum baru bisa muncul, misalnya jenis pergerakan stok baru. Tangani nilai yang tidak dikenal dengan aman, jangan sampai error.
- Perubahan yang merusak kompatibilitas akan terbit sebagai
/api/v2, dan/api/v1tetap berjalan.
Yang tidak dijanjikan: urutan field di dalam JSON, isi cursor, dan kata-kata di error.message.
Rencana pengembangan
Urutannya mengikuti permintaan yang masuk; tidak ada tanggal yang dijanjikan.
| Rencana | Isi |
|---|---|
GET /purchases | Pembelian, penerimaan, dan pembayaran ke supplier — melengkapi sisi pengeluaran laporan keuangan |
GET /petty-cash | Kas kecil masuk dan keluar |
GET /warehouse/item-prices | Daftar harga per cabang atau per supplier |
| Status alert stok | Penanda minimum dan maksimum pada /warehouse/stocks |
| Scoped key | Key dengan akses terbatas per domain data dan per cabang — prasyarat untuk membuka data pelanggan yang sensitif ke pihak ketiga |
| Webhook | Notifikasi dorong saat transaksi dibuat atau diubah, supaya tidak perlu polling |
| Endpoint tulis | Misalnya pembuatan pelanggan dari CRM eksternal |
Mengusulkan kebutuhan baru
Kalau integrasi Anda butuh data yang belum ada, sampaikan ke tim Lensiro dengan tiga hal: data apa yang dibutuhkan, untuk keperluan apa, dan seberapa sering akan ditarik. Menambah satu resource baru relatif ringan karena seluruh fondasinya — autentikasi, envelope, paginasi, sinkronisasi — sudah bisa dipakai ulang; yang menentukan urutan pengerjaan adalah kejelasan kebutuhannya.

