Skip to content

Latest commit

 

History

History
executable file
·
204 lines (153 loc) · 5.74 KB

README.ja.md

File metadata and controls

executable file
·
204 lines (153 loc) · 5.74 KB

postalcode

Postal Codeは、Express(Node.js)で動作する郵便番号を検索するAPIを作成できます。
郵便番号データは日本郵便が公開している郵便番号データを元にNeDBデータベースを作成します。

郵便番号をHTTPリクエストでPOSTすると住所を返します。
お問い合わせフォームやECサイトなどに郵便番号検索機能をつけることができます。

英語の解説はこちら

デモ

https://postalcode.netlify.com

使い方

リクエストパラメータ

POSTでパラメータを送信します。

パラメータ 説明
query string 郵便番号

郵便番号のハイフンはあってもなくてもOKです。

レスポンスフィールド

郵便番号が合致する住所データが結果として配列で返されます。
一般と事業所で含まれるデータが異なります。
データタイプはtypeパラメータで判別できます。

一般データ

パラメータ
type general
postalCode 郵便番号
fullAddress 住所全文
address 住所詳細
kana よみがな(全角カナ)
oldPostalCode 旧郵便番号(5桁)
jisCode 全国地方公共団体コード

addressおよびkanaの構成は以下のとおりです。

パラメータ
prefecture 都道府県名
city 市区町村名
town 町域名
レスポンス例

1000001でリクエストした例

{
  "postalCode": "1000001",
  "address": [
    {
      "type": "normal",
      "postalCode": "1000001",
      "fullAddress": "東京都千代田区千代田",
      "address": {
        "prefecture": "東京都",
        "city": "千代田区",
        "town": "千代田"
      },
      "kana": {
        "prefecture": "トウキョウト",
        "city": "チヨダク",
        "town": "チヨダ"
      },
      "jisCode": "310",
      "oldPostalCode": "100 "
    }
  ]
}

事業所データ

パラメータ
type office
postalCode 郵便番号
oldPostalCode 旧郵便番号(5桁)
name 名称
jisCode 全国地方公共団体コード
fullAddress 住所全文
address 住所詳細

addressの構成は以下のとおりです。

パラメータ
prefecture 都道府県名
city 市区町村名
town 町域名
town 小字名、丁目、番地等
レスポンス例

1008066でリクエストした例

{
  "postalCode": "1008066",
  "address": [
    {
      "type": "office",
      "postalCode": "1008066",
      "oldPostalCode": "100 ",
      "name": "株式会社 日本経済新聞社",
      "jisCode": "310",
      "fullAddress": "東京都千代田区大手町1丁目3-7",
      "address": {
        "prefecture": "東京都",
        "city": "千代田区",
        "town": "大手町",
        "place": "1丁目3-7"
      }
    }
  ]
}

addressの構成は以下のとおりです。

パラメータ
prefecture 都道府県名
city 市区町村名
town 町域名
place 小字名、丁目、番地等

インストールと実行

Node.jsがインストールされた環境を用意します。

リポジトリをクローンし、必要なパッケージをインストールします。

git clone https://github.com/ryo4004/postalcode.git && cd postalcode && npm install

実行します。

node app.js

Expressサーバが起動し、3000番ポートでリクエストを待機します。
永続的に実行する場合はpm2などをご利用ください。

クライアントサンプル

client/index.html参照ください。
動作はデモで確認できます。

郵便番号データベースの更新

郵便番号データベースを更新します。 作業はassetディレクトリで行います。 古いデータを削除します。

cd asset
rm -R database

CSVファイルのダウンロード

郵便番号データは日本郵便のWebサイト内の郵便番号データダウンロードより取得できます。

このプロジェクトでは「読み仮名データの促音・拗音を小書きで表記するもの」内の「全国一括」ファイルおよび「事業所の個別郵便番号」内の「最新データのダウンロード」を使用しています。

以下のコマンドでダウンロードおよび解凍を行います。

wget https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip
wget https://www.post.japanpost.jp/zipcode/dl/jigyosyo/zip/jigyosyo.zip
unzip ken_all.zip
unzip jigyosyo.zip

データベースの作成

ダウンロードしたCSVファイルからNeDBのデータベースを作成します。 作成完了までしばらく時間がかかります。
公開されている郵便番号データには不要と思われるデータも含むため、それらを除外したデータベースを作成します。
除外したデータはdatabase/except.dbに配置されます。 事業所データは全てデータベースに追加されます。

node make.js; node office.js

郵便番号データは毎月更新されるので、その都度データベースの更新が必要です。

ライセンス

MITライセンス