Pengenalan API geoMDB-hub
Diperbarui 20 Juli 2026
Pengenalan API geoMDB-hub
geoMDB-hub menyediakan REST API dan OGC CSW endpoint untuk integrasi dengan sistem eksternal.
Base URL
https://geospasial.pertanian.go.id/api
Autentikasi
API menggunakan session-based authentication via cookie HTTP-only.
Login
POST /api/auth/login
Content-Type: application/json
{ "email": "[email protected]", "password": "kata_sandi" }
Response berhasil menyetel cookie session yang harus disertakan pada setiap request selanjutnya (browser melakukan ini otomatis).
Response error (401):
{ "error": "Email atau password tidak valid" }
OTP Login
Bila OTP aktif, setelah login berhasil, respons mengembalikan:
{ "requiresOtp": true }
Kemudian kirim kode OTP:
POST /api/auth/otp
Content-Type: application/json
{ "otp": "123456" }
Logout
POST /api/auth/logout
Format Response
Semua endpoint REST mengembalikan JSON dengan Content-Type: application/json.
Format error standar:
{ "error": "Pesan error dalam bahasa Indonesia" }
Format sukses (bervariasi per endpoint, contoh):
{ "ok": true }
{ "records": [...], "total": 100, "page": 1 }
{ "settings": { ... } }
Endpoint Publik (Tanpa Autentikasi)
| Method | Path | Keterangan |
|---|---|---|
| GET | /api/public/metadata | Daftar metadata yang dipublikasikan |
| GET | /api/public/metadata/{id} | Detail metadata |
| GET | /api/public/metadata/{id}/xml | Unduh XML metadata |
| GET | /api/standar | Daftar standar yang dipublikasikan |
| GET | /api/standar/{slug} | Detail standar |
| GET | /api/referensi/{jenis} | Daftar kode referensi |
| GET | /api/metadata/{id}/kualitas | Status kualitas metadata |
| GET | /api/verify/{token} | Verifikasi tanda tangan dokumen |
| GET | /api/public/stats | Statistik publik (total metadata, dll.) |
| GET/POST | /csw | OGC CSW 2.0.2 endpoint |
| GET | /api/health | Health check sistem |
Endpoint Terautentikasi (Memerlukan Login)
| Area | Endpoint | Siapa |
|---|---|---|
| Metadata | /api/metadata/* | Semua role |
| QC/QE/QA | /api/metadata/{id}/qcqe/* | Pemeriksa, Walidata, Admin |
| Review | /api/walidata/* | Walidata, Admin |
| Admin | /api/admin/* | Admin |
| Profil | /api/user/profil | Semua role |
Rate Limiting
| Endpoint | Batas | Window | Respons bila Terlampaui |
|---|---|---|---|
/api/verify/{token} | 20 req/IP | 60 detik | HTTP 429 |
/api/walidata/konfirmasi | 10 req/IP | 60 detik | Redirect ke halaman error |
Bila terkena rate limit, tunggu hingga window berakhir sebelum coba lagi. Header Retry-After tidak dikembalikan — gunakan exponential backoff.
Validasi Token (Verifikasi)
Endpoint /api/verify/{token} memvalidasi format token sebelum query ke database:
- Format yang valid: 43 karakter base64url (
[A-Za-z0-9_-]{43}) - Token dengan format tidak valid → HTTP 404 langsung (tanpa DB query)
Keamanan API
- Semua endpoint terautentikasi memerlukan cookie session yang valid
- CSRF dilindungi oleh same-site cookie policy
- Input di-validasi dengan Zod schema sebelum diproses
- SQL injection tidak mungkin karena menggunakan Prisma ORM dengan parameterized queries
- HTML escaping diterapkan di semua output email dan notifikasi
Dokumentasi Interaktif
Spesifikasi OpenAPI dapat dieksplorasi via Swagger UI di:
https://geospasial.pertanian.go.id/admin/api-docs
(Memerlukan login sebagai Admin)