クイックスタートチュートリアル
このチュートリアルでは、最初のMBC CQRS Serverlessアプリケーションの作成方法を説明します。完了時には、ローカルで動作するAPIが完成します。
前提条件
開始する前に、以下がインストールされていることを確認してください:
- Node.js 20.x 以降
- Docker と Docker Compose
- AWS CLI(ローカル開発では実際のクレデンシャルは不要です —
.envファイルにAWS_ACCESS_KEY_ID=localとAWS_SECRET_ACCESS_KEY=localを設定してください) - 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
TypeScriptアプリケーションをビルドします(サーバー起動前に必要):
npm run build
ステップ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のテスト
ブラウザでSwagger UIを開いてAPIを確認・テストしてください:
http://localhost:3000/swagger-ui/
Swagger UIが表示され、利用可能なエンドポイントが一覧表示されます。
最初のエンドポイントの作成
シンプルな「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にデプロイする