/
├── cmd/
│ └── server/
│ └── main.go # アプリケーションのエントリーポイント
├── internal/
│ ├── domain/
│ │ └── todo.go # TODOアイテムのドメインモデル
│ ├── repository/
│ │ ├── todo_repository.go # TODOアイテムのリポジトリインターフェース
│ │ ├── memory/
│ │ │ ├── todo_repository.go # メモリ上に保持するリポジトリの実装
│ │ │ └── todo_repository_test.go # リポジトリのテスト
│ ├── service/
│ │ ├── todo_service.go # TODOサービスのインターフェース
│ │ ├── todo_service_impl.go # TODOサービスの実装
│ │ └── todo_service_test.go # サービスのテスト
│ └── handler/
│ ├── todo_handler.go # HTTPハンドラー
│ └── todo_handler_test.go # ハンドラーのテスト
├── pkg/
│ └── utils/ # 汎用的なユーティリティ関数
├── go.mod # Go モジュール定義
├── go.sum # 依存関係のチェックサム
└── README.md # プロジェクトの説明
前提条件
要件
/todo/{{id}}にGETリクエストをすると、指定したIDのTODOアイテムを取得する。/todoにPOSTリクエストをすると、指定したIDのTODOアイテムを作成する。タスク分解
1. プロジェクト初期設定
2. モデル層の実装
3. サービス層の実装
4. ハンドラー層の実装
5. メインアプリケーションの実装
6. 動作確認
ディレクトリ構成例