Table of Contents
プロジェクト | 概要 |
---|---|
api | API のアプリケーションプロジェクト |
external-api-mock | API からさらに外部の API を想定した Mock プロジェクト |
├── coverage # Jestテストのカバレッジ情報
├── env # 環境変数
├── index.ts # API起動時に最初に実行するファイル
├── load-env.ts # 環境変数のパスをカスタマイズするファイル
├── node_modules # package.jsonに記載されたライブラリの実体
├── package-lock.json
├── package.json
├── specs # テストファイルを保存
│ ├── api-test # APIテストのテストケースを保存
│ ├── helper # テストをやりやすくするためのユーティリティ
│ └── unit-test # 単体テストのテストケースを保存(ディレクトリ構造はsrcと同じ)
│ ├── application
│ ├── domain
│ ├── infrastructure
│ └── interface
├── src # プロダクトコードを保存(Clean Architectureに基づいたディレクトリ構造)
│ ├── application
│ │ ├── gateways # gatewayのインターフェース
│ │ └── usecases
│ ├── domain
│ │ └── entities
│ ├── exception # 異常系関連クラス
│ │ ├── CustomError.ts
│ │ └── ErrorCodes.ts
│ ├── infrastructure # infrastructureの実体
│ │ ├── DBClient.ts
│ │ ├── ExpressInterfaceAdapter.ts
│ │ └── HttpClient.ts
│ └── interface
│ ├── controllers
│ └── gateways # gatewayの実体とinfrastructureのインターフェース
├── test-report.html # Jestのテストレポートファイル
├── test-report.xml # Jestのテストレポートファイル
└── tsconfig.json # Typescriptの設定ファイル
├── package-lock.json
├── package.json
├── server.ts # mocker serverを起動するファイル
├── tsconfig.json # Typescriptの設定ファイル
└── typings # mock-http-serverをTypescriptで使えるように自作したTypeファイル
└── mock-http-server.d.ts
express をベースとして API Server です。
Clean Architecture のサンプル実装となります。
cd api
npm ci
npm run test
npm run start
※下記を実行する前に、external-api-mock を実行してください。
curl localhost:3000/api/users
[{"id":1,"name":"User1","email":"[email protected]"},{"id":2,"name":"User2","email":"[email protected]"},{"id":3,"name":"User3","email":"[email protected]"}]
api から呼び出す外部 API の Mock Server です。
cd api
npm ci
npm run start