Coder Social home page Coder Social logo

postal-code-api's Introduction

郵便番号 API

Build Status

この郵便番号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タスクで以下の処理を行っています。
    1. 日本郵便のウェブサイトから郵便番号データをダウンロード。
    2. ダウンロードしたファイルを解凍して、取り出したCSVをパース。
    3. 郵便番号の上3桁の名前を持つディレクトリを作り、その中に下4桁の名前を持つJSONを作成。
  • 上述の処理をTravis CIで実行し、その結果をgh-pagesにpushしています。
    • 郵便番号データの最後の行にある沖縄県八重山郡与那国町のJSONがあるかどうかをチェックし、すべてのJSONが生成されたものとしています。いいテスト方法があればぜひプルリクエストをお願いします。
  • AWSのLambdaを使用して毎日更新しています。(参考

ローカルでJSONデータを作成する

このリポジトリをcloneしてください。

$ [email protected]:madefor/postal-code-api.git

必要なモジュールをインストールしてください。

$ cd postal-code-api
$ npm install

以下のコマンドでAPIを生成してください。

$ npm run build

ローカルでAPIを動かしたい場合には以下のコマンドを実行してください。

$ npm start

貢献

  • バグレポートはIssueにお願いします。
  • プルリクエストは大歓迎です。
  • Starをつけてもらうと開発者たちのモチベーションが上がります。

ライセンス

MIT

postal-code-api's People

Contributors

dependabot[bot] avatar miya0001 avatar tkc49 avatar torounit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

postal-code-api's Issues

年1回程度しか更新されないデータソースを参照している

image

ローマ字版は統合されており扱いが楽ですが、更新頻度が著しく低いようです。
都道府県別のカナ版には含まれる大田区令和島 (135-0093) がローマ字版には含まれておらず、結果として現状の postal-code-api でも見つからないようになっています。

郵便番号によって途切れてレスポンスが返ってくる

現在、javascriptの住所補完のAPIを使用させていただいているのですが、↓の郵便番号を検索した場合に住所が足りない部分があります。

107-6090

で叩くと

赤坂赤坂アークヒルズ・アーク森ビ

となって返ってきます。
正しくは

赤坂赤坂アークヒルズ・アーク森ビル

です。
ルがないだけで申し訳ないんですが
修正していただけると非常に助かります!
よろしくお願いします!!🙇‍♂️

curl https://madefor.github.io/postal-code-api/api/v1/107/6090.json
{"code":"1076090","data":[{"prefcode":"13","ja":{"prefecture":"東京都","address1":"港区","address2":"赤坂赤坂アークヒルズ・アーク森ビ","address3":"","address4":""},"en":{"prefecture":"Tokyo","address1":"Minato-ku","address2":"Akasaka Akasakaakuhiruzu.akumoribir","address3":"","address4":""}}]}

APIエンドポイントの利用について

postal-code-apiのエンドポイントの商用利用を考えています。
エンドポイント使用時の制限や規約等はございますでしょうか?

エンドポイント使用時の規約についてREADMEに記載があると使用する側としては大変助かります。

参照先の郵便番号CSVファイルの名前が変更されている

参照先(郵便局のサイト)の「住所の郵便番号のzipファイル」解凍後のCSVファイルの名前が変更されているようです。

KEN_ALL_ROME.CSV.CSV
↓
KEN_ALL_ROME.CSV

該当箇所

gulp.task( 'v1', でCSVファイルが参照できなくなっており、処理されません。
結果、住所の郵便番号が api/v1 以下に展開されないようです。
api/JIGYOSYO.CSV のみ処理されます。

References

住所の郵便番号(ローマ字・zip形式)
https://www.post.japanpost.jp/zipcode/dl/roman-zip.html
ダウンロードリンク
https://www.post.japanpost.jp/zipcode/dl/roman/ken_all_rome.zip?190712

Github Pageへの自動デプロイが停止している可能性がある

API上から引当が出来ないため確認をしていた所、昨年に住所変更が実施された地域だったようなのですが
記入時点でGithub pageの最終デプロイ日が2021年6月15日となっており、
日本郵政側でソースとなる住所CSVの2021年6月22日リリース差分が取り込まれていないように思われます。
https://github.com/madefor/postal-code-api/deployments

メンテ中などでしたらご放念頂いて構いません。
お手すきでご確認頂けますと幸いです。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.