basoro/api-wilayah

公共印度尼西亚区域API

安装: 2

依赖: 0

建议: 0

安全性: 0

星级: 0

关注者: 0

分支: 916

语言:HTML

类型:项目

1.0 2024-08-07 00:11 UTC

This package is auto-updated.

Last update: 2024-09-07 00:17:27 UTC


README

此仓库包含用于生成包含印度尼西亚区域数据的静态(REST)API的源代码以及将其部署到静态托管(如GitHub Page)的命令。

演示:[https://emsifa.github.io/api-wilayah-indonesia](https://emsifa.github.io/api-wilayah-indonesia)

静态API是什么意思?

静态API是指其端点由静态文件组成的API。

静态API的优点?

  • 可以托管在如Github Page、Netlify等静态文件托管服务上。
  • 由于不需要服务器端脚本,因此过程更快。

它是如何工作的?

  • 省、市、县、村/屯的列表以CSV文件形式保存在data文件夹中(以便于编辑)。
  • 然后运行generate.php脚本。该脚本将读取data文件夹中的CSV文件,然后生成数千个端点(文件)到static/api文件夹中。
  • API已准备好供“使用”。

我想在自己的GitHub上托管,应该怎么做?

  • 点击右上角的“Fork”。
  • 在Fork页面,取消勾选 "仅复制master分支"。
  • 点击“创建Fork”。
  • 完成Fork后,点击设置(不是账户设置,而是仓库设置)。
  • 点击菜单“Pages”以进入GitHub Pages设置菜单。
  • 在GitHub Pages设置菜单中
    • 选择源:从分支部署
    • 分支:gh-pages
    • 目录:/root
    • 点击保存
  • 等待几分钟(5-10分钟),然后返回到仓库主页([https://github.com/usernamekamu/api-wilayah-indonesia](https://github.com/usernamekamu/api-wilayah-indonesia))。
  • 如果页面已部署,在页面右侧将出现“环境”信息。如果没有,再等几分钟,然后刷新。
  • 如果已经出现“环境”信息,点击“🚀 github-pages”部分。
  • 在部署页面,点击“查看部署”以查看已成功部署的页面。

端点

1. 获取省列表

GET https://emsifa.github.io/api-wilayah-indonesia/api/provinces.json

示例响应

[
  {
    "id": "11",
    "name": "ACEH"
  },
  {
    "id": "12",
    "name": "SUMATERA UTARA"
  },
  ...
]

2. 获取特定省份的市/县列表

GET https://emsifa.github.io/api-wilayah-indonesia/api/regencies/{provinceId}.json

示例:获取阿赫省(ID = 11)的市/县列表

GET https://emsifa.github.io/api-wilayah-indonesia/api/regencies/11.json

示例响应

[
  {
    "id": "1101",
    "province_id": "11",
    "name": "KABUPATEN SIMEULUE"
  },
  {
    "id": "1102",
    "province_id": "11",
    "name": "KABUPATEN ACEH SINGKIL"
  },
  ...
]

3. 获取特定市/县的县列表

GET https://emsifa.github.io/api-wilayah-indonesia/api/districts/{regencyId}.json

示例:获取阿赫南县(ID = 1103)的县列表

GET https://emsifa.github.io/api-wilayah-indonesia/api/districts/1103.json

示例响应

[
  {
    "id": "1103010",
    "regency_id": "1103",
    "name": "TRUMON"
  },
  {
    "id": "1103011",
    "regency_id": "1103",
    "name": "TRUMON TIMUR"
  },
  ...
]

4. 获取特定县的村/屯列表

GET https://emsifa.github.io/api-wilayah-indonesia/api/villages/{districtId}.json

示例:获取Trumon村(ID = 1103010)的村/屯列表

GET https://emsifa.github.io/api-wilayah-indonesia/api/villages/1103010.json

示例响应

[
  {
    "id": "1103010001",
    "district_id": "1103010",
    "name": "KUTA PADANG"
  },
  {
    "id": "1103010002",
    "district_id": "1103010",
    "name": "RAKET"
  },
  ...
]

5. 根据省ID获取省数据

GET https://emsifa.github.io/api-wilayah-indonesia/api/province/{provinceId}.json

示例:获取阿赫省(ID = 11)的数据

GET https://emsifa.github.io/api-wilayah-indonesia/api/province/11.json

示例响应

{
  "id": "11",
  "name": "ACEH"
}

6. 根据市/县ID获取市/县数据

GET https://emsifa.github.io/api-wilayah-indonesia/api/regency/{regencyId}.json

示例:获取阿赫南县(ID = 1103)的数据

GET https://emsifa.github.io/api-wilayah-indonesia/api/regency/1103.json

示例响应

{
  "id": "1103",
  "province_id": "11",
  "name": "KABUPATEN ACEH SELATAN"
}

7. 根据县ID获取县数据

GET https://emsifa.github.io/api-wilayah-indonesia/api/district/{districtId}.json

示例:获取Trumon东县(ID = 1103011)的数据

GET https://emsifa.github.io/api-wilayah-indonesia/api/district/1103011.json

示例响应

{
  "id": "1103011",
  "regency_id": "1103",
  "name": "TRUMON TIMUR"
}

8. 根据村/屯ID获取村/屯数据

GET https://emsifa.github.io/api-wilayah-indonesia/api/village/{villageId}.json

示例:获取Jambo Dalem村(ID = 1103011010)的数据

GET https://emsifa.github.io/api-wilayah-indonesia/api/village/1103011010.json

示例响应

{
  "id": "1103011010",
  "district_id": "1103011",
  "name": "JAMBO DALEM"
}

限制

由于API托管在GitHub Page上,GitHub Page本身提供了每月100GB的带宽限制。这里每个端点的平均大小约为1KB,因此可用的请求量大约为每月1亿,或每天约3000万。

因此,建议您在自己的GitHub上托管此API。

有关GitHub Page的限制的更详细信息,请参阅此处