陽気に郵便番号検索 は C# .NET で作られた、日本郵便の全国郵便番号データをを元に、 データの整形とデータのXMLファイルへの変換・保存、検索機能のライブラリ、 HTMLフォーム上での住所入力アシストなどをセットした開発プロジェクトのパッケージです。
-
陽気に郵便番号検索 [SDK] ※本バージョン 一連のソースコードと開発環境を公開しています。
-
陽気に郵便番号検索 [Web] 既存のHTMLフォームに簡単に郵便番号検索・住所検索機能を追加するための Javascript ライブラリ。
- C# .NET Standard 2.0 ( .NET Framework 4.8, .NET Core など) で書かれたライブラリ
- 日本郵便が提供する 全国郵便番号データ、事業所データ、ローマ字データなどをすべてを一つのXMLファイルとして再構築して保存。またその過程で元のCSVファイルに見られる不正規なフォーマット、文字コードを修正整形。
- データベースレス。郵便番号データであるXMLファイル全体をオンメモリで読み込み、辞書として使用し、郵便番号検索機能をライブラリで提供。
- 既存のHTMLフォームに簡単に住所入力補助を追加できる Javascript ライブラリ
また Yokinsoft がホストするAPIサーバーを使用すれば
- 既存の住所入力フォームに js ファイル css ファイルをインクルード、テキストボックスなどを指定する数行の javascript を記述するだけで、 郵便番号オートコンプリート機能、検索機能を追加することが可能。
- APIサーバーの郵便番号データは常に最新のデータで維持されるので、更新作業などが不要(日本郵便のデータファイル更新に自動対応)
陽気に郵便番号検索 [Web] は別のリポジトリで導入方法を紹介しています。
- 日本郵便が公開する郵便番号データから、システムで利用しやすい XML 形式のフォーマットに変換・出力するコマンドツール (ConvXML.exe)
- XML形式の郵便番号データを検索するための .NET ライブラリ
- 住所入力補助機能をHTMLフォームに簡単に追加実装できる Javascript ライブラリ
- ---住所入力補助機能のための郵便番号検索 Web API をホストするためのプロジェクト(.NET Core WebAPI)---
などのセットになっています。
- ConvXML.exe 日本郵便CSVファイル → XMLデータ 変換・作成コマンドラインツール
- Yokinsoft.ZipCode.Data 郵便番号XML データアクセス、検索ライブラリ
- Yokinsoft.ZipCode.Web WebAPI用 JSON 等フォーマットライブラリ
本プロジェクトの著作権は Yokinsoft (陽気なソフト) が保持します。
本リポジトリに含まれるすべてのプロジェクトは MIT ライセンス。
本ライブラリでは、日本郵便が公開する郵便番号データの各種CSVを1つのXMLファイルにコンパイルします。(ConvXML.exe) pXMLファイルの仕様はこちらのドキュメントを参照してください。PostCodeDataXML](PostCodeDataXML)
住所は一般的に個人情報の一部です。ウェブフォームアシスタントを使うと、顧客が入力途中の郵便番号、住所の文字列がサーバーへ送信され検索に使用されます。 考慮されるべきセキュリティ上の注意は以下のようになります。
- 郵便番号は一般に公開情報であり、個人の住所を特定することはできない。(登録済みの事業所を除く)
- 住所の文字列の一部は入力フォームの設計によっては個人宅を特定する範囲の情報を含む場合がある。
- WEBAPIを自前でホスティングしない場合 検索用WEBAPIが陽気なソフトがホスティングする公開Webサーバーへ住所文字列が送信される。
- API エンドポイントへリクエストされたURL が履歴、キャッシュとしてWebブラウザ内に残る。
基本的な考え方は次の通り
- 郵便番号自体は公開情報であり、秘匿する必要はない
- 住所文字列は利用者(顧客等)の自宅などピンポイントで特定される情報を含む可能性があり、一定の配慮が必要
本ライブラリの現行バージョンでは具体的な対策として次の内容を盛り込んでいます。
- 郵便番号から検索する場合は HTTP GET により URLの Query 文字列を使って送信。Query部分を含むアクセス履歴が残る可能性あり。Webブラウザのキャッシュが有効になりパフォーマンスに有利となる。
- 住所文字列から検索する場合は HTTP POST によりメッセージBodyに住所を含ませる。URLの履歴情報には住所は残らない。Webブラウザのキャッシュは無効となりパフォーマンス的には不利。
- (当然ながら) WEBAPI エンドポイントは HTTPS による暗号化
このプロジェクトは以下のサードパーティーライブラリに依存しています。