FastAPI backend + CLI untuk data provinsi/kabupaten/kota. Snapshot dataset 2024-12 dengan cakupan 38 provinsi, 416 kabupaten, 98 kota. Terakhir dicek internal: Agustus 2025 (cek konsistensi coverage & struktur; bukan verifikasi legal/administratif).
- Data provinsi/kabupaten/kota tersimpan di JSON
- Endpoint versi
/v1(health, stats, meta, provinces, search) - Pagination untuk daftar provinsi
- Pencarian lintas provinsi/kabupaten/kota
- Caching headers (
Cache-Control,ETag) dengan dukungan304 - CORS bisa dikonfigurasi via env
ALLOW_ORIGINS - CLI legacy tetap ada (tag
v1.0.0-cli)
- CLI legacy: tag
v1.0.0-cli - API:
v0.1.0-api,v0.1.1-api,v0.1.2-api(terkini; mencakup smoke test &api.http) - Catatan perubahan: lihat
CHANGELOG.md; sumber data & metodologi:DATA_SOURCES.md
- Base URL (Production): belum tersedia (belum ada hosting publik/gratis).
- API dapat dijalankan lokal < 2 menit; sertakan
make smokeuntuk verifikasi cepat.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt -r requirements-dev.txt
make devmake check
make smoke
# atau jika server sudah jalan:
SMOKE_START_SERVER=0 ./scripts/smoke_test.shGET /health— status aplikasiGET/HEAD /v1/stats— ringkasan total provinsi/kabupaten/kotaGET/HEAD /v1/meta— metadata dataset + computed coverageGET/HEAD /v1/provinces?limit=&offset=— daftar provinsi (paginasi)GET/HEAD /v1/provinces/{name}— detail provinsi, alias & case-insensitive,409jika ambiguGET/HEAD /v1/search?q=...&type=all|kabupaten|kota— pencarian lintas provinsi- Dokumentasi lokal: http://127.0.0.1:8000/docs
curl http://127.0.0.1:8000/health
curl http://127.0.0.1:8000/v1/meta
curl "http://127.0.0.1:8000/v1/provinces?limit=5&offset=0"
curl http://127.0.0.1:8000/v1/provinces/jabar
curl "http://127.0.0.1:8000/v1/search?q=bima&type=all"- File
api.httpsiap dipakai di VS Code/JetBrains REST Client (opsional).
APP_VERSION(default0.1.2-api)ALLOW_ORIGINS(pisah dengan koma; kosongkan untuk menonaktifkan CORS)PORT(default 8000)- Jalankan dengan host
127.0.0.1; gunakan0.0.0.0hanya jika memahami risikonya (container/jaringan).
- Dataset snapshot:
dataset_version2024-12; coverage: 38 provinsi, 416 kabupaten, 98 kota. last_updatedpada metadata merefleksikan tanggal file di repo, bukan klaim perubahan administratif resmi.- Untuk akurasi legal/administratif, rujuk sumber resmi; detail sumber & atribusi ada di
DATA_SOURCES.md. - Lisensi kode: MIT (lihat
LICENSE); lisensi data mengikuti sumber masing-masing.
Lihat CONTRIBUTING.md untuk panduan setup, quality gate, smoke test, dan aturan perubahan data.