郵便番号 API
この郵便番号APIはGitHubページを使用して静的なファイルで配信しているため信頼性が高く、さらにオープンソースなのでクライアントワークでも安心して使用できます。
また、郵便番号から英語の住所を取得することも可能です。(大口事業所個別番号は英語には対応していません。)
なお、このAPIはAWSのLambdaを使用して毎日更新しています。
デモ
https://madefor.github.io/postal-code-api/
エンドポイント
https://madefor.github.io/postal-code-api/api/v1/
使い方
郵便番号が100-0014
(東京都千代田区永田町)の住所を取得したい場合。
https://madefor.github.io/postal-code-api/api/v1/100/0014.json
{
"code": "1000014",
"data": [
{
"prefcode": "13",
"ja": {
"prefecture": "東京都",
"address1": "千代田区",
"address2": "永田町",
"address3": "",
"address4": ""
},
"en": {
"prefecture": "Tokyo",
"address1": "Chiyoda-ku",
"address2": "Nagatacho",
"address3": "",
"address4": ""
}
}
]
}
1つの郵便番号に複数の住所がある場合は以下のような感じです。
https://madefor.github.io/postal-code-api/api/v1/618/0000.json
{
"code": "6180000",
"data": [
{
"prefcode": "26",
"ja": {
"prefecture": "京都府",
"address1": "乙訓郡大山崎町",
"address2": "",
"address3": "",
"address4": ""
},
"en": {
"prefecture": "Kyoto",
"address1": "Oyamazaki-cho, Otokuni-gun",
"address2": "",
"address3": "",
"address4": ""
}
},
{
"prefcode": "27",
"ja": {
"prefecture": "大阪府",
"address1": "三島郡島本町",
"address2": "",
"address3": "",
"address4": ""
},
"en": {
"prefecture": "Osaka",
"address1": "Shimamoto-cho, Mishima-gun",
"address2": "",
"address3": "",
"address4": ""
}
}
]
}
大口事業所個別番号では英語の住所は空になっています。
https://madefor.github.io/postal-code-api/api/v1/100/8798.json
{
"code": "1008798",
"data": [
{
"prefcode": "13",
"ja": {
"prefecture": "東京都",
"address1": "千代田区",
"address2": "霞が関",
"address3": "1丁目3-2",
"address4": "株式会社 ゆうちょ銀行"
},
"en": {
"prefecture": "",
"address1": "",
"address2": "",
"address3": "",
"address4": ""
}
},
{
"prefcode": "13",
"ja": {
"prefecture": "東京都",
"address1": "千代田区",
"address2": "霞が関",
"address3": "1丁目3-2",
"address4": "株式会社 かんぽ生命"
},
"en": {
"prefecture": "",
"address1": "",
"address2": "",
"address3": "",
"address4": ""
}
},
{
"prefcode": "13",
"ja": {
"prefecture": "東京都",
"address1": "千代田区",
"address2": "霞が関",
"address3": "1丁目3-2",
"address4": "日本郵政 株式会社"
},
"en": {
"prefecture": "",
"address1": "",
"address2": "",
"address3": "",
"address4": ""
}
},
{
"prefcode": "13",
"ja": {
"prefecture": "東京都",
"address1": "千代田区",
"address2": "霞が関",
"address3": "1丁目3-2",
"address4": "日本郵便 株式会社 本社"
},
"en": {
"prefecture": "",
"address1": "",
"address2": "",
"address3": "",
"address4": ""
}
}
]
}
仕様
- 大口事業所個別番号データは英語には対応していません。
- Gulpタスクで以下の処理を行っています。
- 日本郵便のウェブサイトから郵便番号データをダウンロード。
- ダウンロードしたファイルを解凍して、取り出したCSVをパース。
- 郵便番号の上3桁の名前を持つディレクトリを作り、その中に下4桁の名前を持つJSONを作成。
- 上述の処理をTravis CIで実行し、その結果をgh-pagesにpushしています。
- 郵便番号データの最後の行にある沖縄県八重山郡与那国町のJSONがあるかどうかをチェックし、すべてのJSONが生成されたものとしています。いいテスト方法があればぜひプルリクエストをお願いします。
- AWSのLambdaを使用して毎日更新しています。(参考)
ローカルでJSONデータを作成する
このリポジトリをcloneしてください。
$ git@github.com:madefor/postal-code-api.git
必要なモジュールをインストールしてください。
$ cd postal-code-api
$ npm install
以下のコマンドでAPIを生成してください。
$ npm run build
ローカルでAPIを動かしたい場合には以下のコマンドを実行してください。
$ npm start
貢献
- バグレポートはIssueにお願いします。
- プルリクエストは大歓迎です。
- Starをつけてもらうと開発者たちのモチベーションが上がります。
ライセンス
MIT