Web開発 - 課題

課題: タスク管理アプリケーション

RESTful APIとWebページを提供する実用的なタスク管理アプリケーションを開発してください。

必須機能

1. HTTPサーバー

  • net/httpを使用した基本的なHTTPサーバー
  • 複数のルートハンドリング
  • ミドルウェアパターンの実装
  • 2. RESTful API

  • タスクのCRUD操作(Create/Read/Update/Delete)
  • JSONレスポンス
  • 適切なHTTPステータスコード
  • 3. HTMLテンプレート

  • html/templateを使用したページレンダリング
  • タスク一覧表示
  • タスク作成フォーム
  • 4. データ永続化

  • メモリ内データ構造(マップまたはスライス)
  • JSONファイルへの保存(オプション)
  • 5. ミドルウェア

  • ロギングミドルウェア
  • リカバリーミドルウェア(panic対応)
  • CORS対応(オプション)
  • 技術的制約

  • 標準ライブラリのnet/httphtml/templateを使用
  • 外部フレームワーク(gin、echoなど)の使用は許可するが、標準ライブラリ版も理解すること
  • データベースは不要(メモリ内またはJSONファイル)
  • 適切なエラーハンドリング
  • コードの構造化とパッケージ分割
  • 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
    

    提出物

  • 動作するGoプロジェクト
  • README.md(起動方法、API仕様)
  • テストコード(オプション)