Web開発 - 課題
課題: タスク管理アプリケーション
RESTful APIとWebページを提供する実用的なタスク管理アプリケーションを開発してください。
必須機能
1. HTTPサーバー
net/httpを使用した基本的なHTTPサーバー- 複数のルートハンドリング
- ミドルウェアパターンの実装
- タスクのCRUD操作(Create/Read/Update/Delete)
- JSONレスポンス
- 適切なHTTPステータスコード
html/templateを使用したページレンダリング- タスク一覧表示
- タスク作成フォーム
- メモリ内データ構造(マップまたはスライス)
- JSONファイルへの保存(オプション)
- ロギングミドルウェア
- リカバリーミドルウェア(panic対応)
- CORS対応(オプション)
- 標準ライブラリの
net/httpとhtml/templateを使用 - 外部フレームワーク(gin、echoなど)の使用は許可するが、標準ライブラリ版も理解すること
- データベースは不要(メモリ内またはJSONファイル)
- 適切なエラーハンドリング
- コードの構造化とパッケージ分割
2. RESTful API
3. HTMLテンプレート
4. データ永続化
5. ミドルウェア
技術的制約
API仕様
GET /api/tasks → タスク一覧取得
POST /api/tasks → タスク作成
GET /api/tasks/{id} → タスク詳細取得
PUT /api/tasks/{id} → タスク更新
DELETE /api/tasks/{id} → タスク削除
プロジェクト構造(推奨)
task-manager/
├── main.go
├── handlers/
│ ├── tasks.go
│ └── templates.go
├── middleware/
│ ├── logger.go
│ └── recovery.go
├── models/
│ └── task.go
├── storage/
│ └── memory.go
├── templates/
│ ├── index.html
│ └── layout.html
└── go.mod