Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

不動産取引価格 API

English | 日本語 | 中文

NestJS と TypeScript で構築された、日本の関東地方における不動産取引価格を照会するための RESTful API です。

概要

このAPIは、関東地方における住宅用地と商業用地の過去の不動産取引価格データ(2015年~2018年)へのアクセスを提供します。

API の使用方法

エンドポイント

GET /api/v1/townPlanning/estateTransaction/bar

クエリパラメータ

パラメータ 型 必須 説明 有効な値
year number Yes 取引データの年度 2015-2018
prefectureCode number Yes 都道府県コード(関東地方のみ) 8-14
type number Yes 物件種別(1: 住宅用地、2: 商業用地) 1-2

都道府県コード(関東地方)

  • 8 - 茨城県
  • 9 - 栃木県
  • 10 - 群馬県
  • 11 - 埼玉県
  • 12 - 千葉県
  • 13 - 東京都
  • 14 - 神奈川県

リクエスト例

# 2015年の東京都の住宅用地価格を取得
curl "http://localhost:3000/api/v1/townPlanning/estateTransaction/bar?year=2015&prefectureCode=13&type=1"

レスポンス例

{
  "prefectureCode": "13",
  "prefectureName": "東京都",
  "type": "1",
  "years": [
    {
      "year": 2015,
      "value": 200000
    }
  ]
}

エラーレスポンス

404 Not Found - 指定されたパラメータのデータが利用できない場合

{
  "statusCode": 404,
  "message": "Estate transaction data not found for year: 2019, prefectureCode: 13, type: 1"
}

400 Bad Request - クエリパラメータが無効な場合

{
  "statusCode": 400,
  "message": [
    "year must be between 2015 and 2018",
    "prefectureCode must be a Kanto region code (8-14)"
  ]
}

プロジェクトのセットアップ

$ pnpm install

アプリケーションの実行

# ホットリロード付き開発モード
$ pnpm run start:dev

# 本番モード
$ pnpm run start:prod

API は http://localhost:3000 で利用可能になります

テストの実行

# すべての単体テストを実行
$ pnpm run test

# ウォッチモードでテストを実行
$ pnpm run test:watch

# テストカバレッジレポートを生成
$ pnpm run test:cov

コード品質

# ESLint を実行
$ pnpm run lint

# Prettier でコードをフォーマット
$ pnpm run format

プロジェクトアーキテクチャ

このプロジェクトは、クリーンアーキテクチャの原則に従ったドメイン駆動設計(DDD)を採用しています:

src/
└── town-planning/
    └── estate-transaction/
        ├── controller/          # HTTPレイヤー - リクエスト/レスポンスを処理
        ├── use-case/           # ビジネスロジックレイヤー
        ├── repository/         # データアクセスインターフェース
        ├── infrastructure/     # 外部依存関係(データロードなど)
        ├── domain/            # ドメインエンティティと型
        └── dto/               # データ転送オブジェクト

レイヤーの責務

  • Controller: HTTP リクエストを受け取り、入力を検証し、ユースケースを呼び出す
  • Use Case: ビジネスロジックを含み、データフローを調整する
  • Repository: データアクセスのインターフェース(DI パターン)
  • Infrastructure: Repository インターフェースを実装し、データロードを処理
  • Domain: コアビジネスエンティティと型
  • DTO: リクエスト/レスポンスの検証スキーマ

技術スタック

  • フレームワーク: NestJS
  • 言語: TypeScript
  • バリデーション: class-validator, class-transformer
  • テスト: Jest
  • コード品質: ESLint, Prettier

ライセンス

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages