クイック スタートチュートリアル
このチュートリアルでは、最初のMBC CQRS Serverlessアプリケーションの作成方法を説明します。完了時には、ローカルで動作するAPIが完成します。
前提条件
開始する前に、以下がインストールされていることを確認してください:
- Node.js 18.x 以降
- Docker と Docker Compose
- AWS CLI(認証情報設定済み)
- Git
ステップ1: 新規プロジェクトの作成
MBC CQRS CLIを使用して新しいプロジェクトをスキャフォールドします:
npx @mbc-cqrs-serverless/cli new my-app
cd my-app
CLIは以下の構造でプロジェクトを作成します:
my-app/
├── src/
│ ├── main.ts
│ ├── main.module.ts
│ └── ...
├── infra-local/
│ ├── docker-compose.yml
│ └── serverless.yml
├── prisma/
│ └── schema.prisma
├── package.json
└── ...
ステップ2: 依存関係のインストール
npm install
ステップ3: ローカルインフラの起動
Docker Composeを使用してローカル開発環境を起動します:
npm run offline:docker
以下のサービスが起動します:
- DynamoDB Local(ポート8000)
- PostgreSQL(ポート5432)
- AWSサービス用のLocalStack
ステップ4: データベースの初期化
Prismaマイグレーションを実行してデータベーススキーマをセットアップします:
npm run migrate
ステップ5: 開発サーバーの起動
新しいターミナルで、Serverless Offlineサーバーを起動します:
npm run offline:sls
APIは http://localhost:3000 で実行されています。
ステップ6: APIのテスト
ヘルスエンドポイントをテストします:
curl http://localhost:3000/health
サービスが正常であることを示すレスポンスが表示されます。
最初のエンドポイントの作成
シンプルな「Hello World」エンドポイントを作成しましょう。
コントローラーの作成
src/hello/hello.controller.ts を新規作成します:
import { Controller, Get } from '@nestjs/common';
@Controller('hello')
export class HelloController {
@Get()
getHello(): string {
return 'Hello, MBC CQRS Serverless!';
}
}
モジュールの作成
src/hello/hello.module.ts を新規作成します:
import { Module } from '@nestjs/common';
import { HelloController } from './hello.controller';
@Module({
controllers: [HelloController],
})
export class HelloModule {}
モジュールの登録
src/main.module.ts のメインモジュールにHelloModuleを追加します:
import { Module } from '@nestjs/common';
import { HelloModule } from './hello/hello.module';
@Module({
imports: [
// ... existing imports
HelloModule,
],
})
export class MainModule {}
新しいエンドポイントのテスト
サーバーを再起動して新しいエンドポイントをテストします:
curl http://localhost:3000/hello
Hello, MBC CQRS Serverless! と表示されます。
次のステップ
おめでとうございます!最初のMBC CQRS Serverlessアプリケーシ ョンが完成しました。次に探索すべき内容:
- Todoアプリの構築 - 完全なアプリケーションを構築してCQRSパターンを学ぶ
- コアコンセプト - CQRSとイベントソーシングアーキテクチャを理解する
- デプロイメントガイド - アプリケーションをAWSにデプロイする
よく使うコマンド
| コマンド | 説明 |
|---|---|
npm run offline:docker | ローカルDockerサービスを起動 |
npm run offline:sls | Serverless Offlineを起動 |
npm run migrate | データベースマイグレーションを実行 |
npm run build | アプリケーションをビルド |
npm run test | ユニットテストを実行 |
npm run test:e2e | E2Eテストを実行 |