Skip to content

CASL0/japanpost_api

Repository files navigation

japanpost_api

Test Lint TypeScript Style Guide License

日本郵政の郵便番号データを使用した郵便番号検索APIの構築をします。

Requirements

以下の環境変数を設定してください。

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_DEFAULT_REGION

Getting Started

VSCode で本プロジェクトを開き、コマンドパレット(Ctrl+Shift+P)から[Dev Containers: Reopen in Container...]を実行し、下記コマンドを実行してください。

yarn compile src/handler.ts
yarn cdk deploy

デプロイ完了です。

API Gatewayのサービスエンドポイントを確認し、APIをリクエストしてください。

curl http://example.com?zipcode=1010065

以下のレスポンスが返ってきます。

[
  {
    "jisCode": "13101",
    "oldZipCode": "101  ",
    "zipCode": "1010065",
    "prefectureKatakana": "トウキョウト",
    "cityKatakana": "チヨダク",
    "townKatakana": "ニシカンダ",
    "prefecture": "東京都",
    "city": "千代田区",
    "town": "西神田"
  }
]

構成

API Gateway を Lambda と統合し、Lambda から S3 Select を呼び出して CSV から住所検索をします。

  • API Gateway
  • Lambda
  • S3

infra

詳細

  1. 日本郵政の Web サイトから CSV をダウンロードします。

  2. S3 のバケットを作成し、上記でダウンロードした CSV を配置します。

  3. ラムダを作成し、aws-sdk を使って、S3 Select による住所検索をします。

    • 512 MiB
    • Node 16
  4. 先に作成したバケットの読み取り権限をラムダに付与します。

  5. API Gateway を作成し、上記のラムダと統合します。

Releases

No releases published

Packages

No packages published