NestJS と TypeScript で構築された、日本の関東地方における不動産取引価格を照会するための RESTful API です。
このAPIは、関東地方における住宅用地と商業用地の過去の不動産取引価格データ(2015年~2018年)へのアクセスを提供します。
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:prodAPI は 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