/YZipCode.SDK

C# .NETで書かれた郵便番号データ作成・検索のためのライブラリSDK / Japan postal code data management and search SDK written in C# .NET

Primary LanguageC#MIT LicenseMIT

陽気に郵便番号検索 [SDK] 開発キット

陽気に郵便番号検索とは

陽気に郵便番号検索 は C# .NET で作られた、日本郵便の全国郵便番号データをを元に、 データの整形とデータのXMLファイルへの変換・保存、検索機能のライブラリ、 HTMLフォーム上での住所入力アシストなどをセットした開発プロジェクトのパッケージです。

特徴

  • 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)---

などのセットになっています。


著作権

本プロジェクトの著作権は Yokinsoft (陽気なソフト) が保持します。

ライセンス

本リポジトリに含まれるすべてのプロジェクトは MIT ライセンス。

JapanPostCodeData.xml

本ライブラリでは、日本郵便が公開する郵便番号データの各種CSVを1つのXMLファイルにコンパイルします。(ConvXML.exe) pXMLファイルの仕様はこちらのドキュメントを参照してください。PostCodeDataXML](PostCodeDataXML)

セキュリティとプライバシーに関する考察

住所は一般的に個人情報の一部です。ウェブフォームアシスタントを使うと、顧客が入力途中の郵便番号、住所の文字列がサーバーへ送信され検索に使用されます。 考慮されるべきセキュリティ上の注意は以下のようになります。

  • 郵便番号は一般に公開情報であり、個人の住所を特定することはできない。(登録済みの事業所を除く)
  • 住所の文字列の一部は入力フォームの設計によっては個人宅を特定する範囲の情報を含む場合がある。
  • WEBAPIを自前でホスティングしない場合 検索用WEBAPIが陽気なソフトがホスティングする公開Webサーバーへ住所文字列が送信される。
  • API エンドポイントへリクエストされたURL が履歴、キャッシュとしてWebブラウザ内に残る。

WEBAPIへ住所を送信する際のプライバシー対策

基本的な考え方は次の通り

  • 郵便番号自体は公開情報であり、秘匿する必要はない
  • 住所文字列は利用者(顧客等)の自宅などピンポイントで特定される情報を含む可能性があり、一定の配慮が必要

本ライブラリの現行バージョンでは具体的な対策として次の内容を盛り込んでいます。

  • 郵便番号から検索する場合は HTTP GET により URLの Query 文字列を使って送信。Query部分を含むアクセス履歴が残る可能性あり。Webブラウザのキャッシュが有効になりパフォーマンスに有利となる。
  • 住所文字列から検索する場合は HTTP POST によりメッセージBodyに住所を含ませる。URLの履歴情報には住所は残らない。Webブラウザのキャッシュは無効となりパフォーマンス的には不利。
  • (当然ながら) WEBAPI エンドポイントは HTTPS による暗号化

依存ライブラリ

このプロジェクトは以下のサードパーティーライブラリに依存しています。

  • Kana.NET Umayadia.Kana かな文字変換ライブラリ [MITライセンス]
  • DotNetZip ZIPファイル展開ライブラリ [Microsoft Public License (Ms-PL)]