はじめに
郵便番号データ
下記のサイトから住所データをダウンロードしてデータベースに登録する www.post.japanpost.jp
ダウンロードした
KEN_ALL.csvファイルはShift-JISのCRLFの改行コードのため、MySQLにインポートする場合、困るので、nkfコマンドで変換する。
# nkf -w -Lu --overwrite KEN_ALL.csv
- 必要な項目だけCSVファイルにする
# cut -d ',' -f 3,7,8,9 KEN_ALL.CSV > address.csv
データベース登録用SQLを作成する
insert into addresses (post_code,prefectures,city_name,town_name) values('0640941','北海道','札幌市中央区','旭ケ丘');
insert into addresses (post_code,prefectures,city_name,town_name) values('0600041','北海道','札幌市中央区','大通東');
insert into addresses (post_code,prefectures,city_name,town_name) values('0600042','北海道','札幌市中央区','大通西(1〜19丁目)');
insert into addresses (post_code,prefectures,city_name,town_name) values('0640820','北海道','札幌市中央区','大通西(20〜28丁目)');
insert into addresses (post_code,prefectures,city_name,town_name) values('0600031','北海道','札幌市中央区','北一条東');
strapi管理画面で住所情報を登録するためのコンテンツタイプを設定する
- addressコンテンツタイプを下記のように設定する

作成した住所のコンテンツタイプをAPIで利用できるようにするための設定

APIを実行する
- APIはlimitの指定をしないとデフォルトで100件までしか取得できない
http://localhost:1337/addresses?_limit=2
[
{
"id": 1,
"post_code": "0600000",
"prefectures": "北海道",
"city_name": "札幌市中央区",
"town_name": "以下に掲載がない場合",
"published_at": "2020-12-11T12:21:36.000Z",
"created_at": "2020-12-11T12:07:28.000Z",
"updated_at": "2020-12-11T12:07:28.000Z"
},
{
"id": 2,
"post_code": "0640941",
"prefectures": "北海道",
"city_name": "札幌市中央区",
"town_name": "旭ケ丘",
"published_at": "2020-12-11T12:21:36.000Z",
"created_at": "2020-12-11T12:14:13.000Z",
"updated_at": "2020-12-11T12:14:13.000Z"
}
]
- 絞り込み検索はコンテンツタイプで設定したフィールド名を指定してデータの絞り込みが可能となる。
http://localhost:1337/addresses?prefectures=千葉県&city_name=船橋市&_limit=2