basoro/api-wilayah
Composer 安装命令:
composer create-project basoro/api-wilayah
包简介
Public API Wilayah Indonesia
README 文档
README
Repository ini berisi source code untuk generate (REST) API statis berisi data wilayah Indonesia serta perintah untuk mendeploynya ke static hosting Github Page.
Demo: https://emsifa.github.io/api-wilayah-indonesia
Apa yang dimaksud API statis?
API statis adalah API yang endpoint-nya terdiri dari file statis.
Keuntungan API statis?
- Dapat dihosting pada static file hosting seperti Github Page, Netlify, dsb.
- Proses lebih cepat karena tidak membutuhkan server-side scripting.
Bagaimana cara kerjanya?
- Daftar provinsi, kab/kota, kecamatan, kelurahan/desa disimpan pada folder
databerupa filecsv(agar mudah diedit). - Kemudian script
generate.phpdijalankan. Script ini akan membaca filecsvdidalam folderdata, kemudian men-generate ribuan endpoint (file) kedalam folderstatic/api. - API siap 'dihidangkan'.
Saya mau hosting di Github saya sendiri, bagaimana caranya?
- Klik fork di pojok kanan atas.
- Pada halaman forking, HAPUS CENTANG "Copy the master branch only".
- Klik "Create Fork".
- Setelah selesai di Fork, klik Settings (bukan setting account, tapi setting repository).
- Klik menu "Pages" untuk masuk ke menu pengaturan GitHub Pages.
- Pada menu pengaturan GitHub Pages:
- Pilih Source: Deploy from a Branch
- Branch:
gh-pages - Direktori:
/root - Klik Save
- Tunggu beberapa menit (5-10 menitan), kembali ke halaman home repository (https://github.com/usernamekamu/api-wilayah-indonesia).
- Kalau halaman sudah terdeploy, di bagian kanan halaman, akan muncul informasi "Environments". Kalau belum tunggu lagi beberapa menit, lalu refresh.
- Kalau sudah muncul informasi Environmentsnya, klik bagian "🚀 github-pages".
- Di halaman Deployments, klik "View Deployment" untuk melihat halaman yang berhasil terdeploy.
ENDPOINTS
1. Mengambil Daftar Provinsi
GET https://emsifa.github.io/api-wilayah-indonesia/api/provinces.json
Contoh Response:
[
{
"id": "11",
"name": "ACEH"
},
{
"id": "12",
"name": "SUMATERA UTARA"
},
...
]
2. Mengambil Daftar Kab/Kota pada Provinsi Tertentu
GET https://emsifa.github.io/api-wilayah-indonesia/api/regencies/{provinceId}.json
Contoh untuk mengambil daftar kab/kota di provinsi Aceh (ID = 11):
GET https://emsifa.github.io/api-wilayah-indonesia/api/regencies/11.json
Contoh Response:
[
{
"id": "1101",
"province_id": "11",
"name": "KABUPATEN SIMEULUE"
},
{
"id": "1102",
"province_id": "11",
"name": "KABUPATEN ACEH SINGKIL"
},
...
]
3. Mengambil Daftar Kecamatan pada Kab/Kota Tertentu
GET https://emsifa.github.io/api-wilayah-indonesia/api/districts/{regencyId}.json
Contoh untuk mengambil daftar kecamatan di Aceh Selatan (ID = 1103):
GET https://emsifa.github.io/api-wilayah-indonesia/api/districts/1103.json
Contoh Response:
[
{
"id": "1103010",
"regency_id": "1103",
"name": "TRUMON"
},
{
"id": "1103011",
"regency_id": "1103",
"name": "TRUMON TIMUR"
},
...
]
4. Mengambil Daftar Kelurahan pada Kecamatan Tertentu
GET https://emsifa.github.io/api-wilayah-indonesia/api/villages/{districtId}.json
Contoh untuk mengambil daftar kelurahan di Trumon (ID = 1103010):
GET https://emsifa.github.io/api-wilayah-indonesia/api/villages/1103010.json
Contoh Response:
[
{
"id": "1103010001",
"district_id": "1103010",
"name": "KUTA PADANG"
},
{
"id": "1103010002",
"district_id": "1103010",
"name": "RAKET"
},
...
]
5. Mengambil Data Provinsi berdasarkan ID Provinsi
GET https://emsifa.github.io/api-wilayah-indonesia/api/province/{provinceId}.json
Contoh untuk mengambil data provinsi Aceh (ID = 11):
GET https://emsifa.github.io/api-wilayah-indonesia/api/province/11.json
Contoh Response:
{
"id": "11",
"name": "ACEH"
}
6. Mengambil Data Kab/Kota berdasarkan ID Kab/Kota
GET https://emsifa.github.io/api-wilayah-indonesia/api/regency/{regencyId}.json
Contoh untuk mengambil data kabupaten Aceh Selatan (ID = 1103):
GET https://emsifa.github.io/api-wilayah-indonesia/api/regency/1103.json
Contoh Response:
{
"id": "1103",
"province_id": "11",
"name": "KABUPATEN ACEH SELATAN"
}
7. Mengambil Data Kecamatan berdasarkan ID Kecamatan
GET https://emsifa.github.io/api-wilayah-indonesia/api/district/{districtId}.json
Contoh untuk mengambil data kecamatan Trumon Timur (ID = 1103011):
GET https://emsifa.github.io/api-wilayah-indonesia/api/district/1103011.json
Contoh Response:
{
"id": "1103011",
"regency_id": "1103",
"name": "TRUMON TIMUR"
}
8. Mengambil Data Kelurahan berdasarkan ID Kelurahan
GET https://emsifa.github.io/api-wilayah-indonesia/api/village/{villageId}.json
Contoh untuk mengambil data kelurahan Jambo Dalem (ID = 1103011010):
GET https://emsifa.github.io/api-wilayah-indonesia/api/village/1103011010.json
Contoh Response:
{
"id": "1103011010",
"district_id": "1103011",
"name": "JAMBO DALEM"
}
LIMITASI
Karena API ini dihosting di Github Page, Github Page sendiri memberikan batasan bandwith 100GB/bulan. Rata-rata endpoint disini memiliki ukuran 1KB/endpoint, jadi kurang lebih request yang dapat digunakan adalah 100.000.000 request per bulan, atau sekitar 3.000.000 request/hari.
Karena limitasi ini, disarankan untuk hosting API ini di github kamu sendiri.
Untuk lebih detail tentang limitasi Github Page, bisa dilihat disini.
basoro/api-wilayah 适用场景与选型建议
basoro/api-wilayah 是一款 基于 HTML 开发的 Composer 扩展包,目前已累计 10 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 08 月 07 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 basoro/api-wilayah 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 basoro/api-wilayah 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 10
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 16
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-08-07