応用課題

1. 課題の概要

この章で学んだ内容をもとに、ホテルの予約管理REST API を作成します。

ホテルの予約情報を登録・取得・更新・削除できるAPIを、Python(FastAPI + SQLModel)で実装します。

2. 事前準備

Gitの基礎知識を習得していることを前提とします。自信のない方は先に以下の講座を実施してください。

この応用課題に取り組む前に、以下のツールが準備できていることを確認してください。

3. 必須要件

3.1 REST API

  • FastAPIを使用してREST APIを作成すること
  • 以下の5つのエンドポイントを実装すること
    • 一覧取得: GET /reservations — 予約の一覧を取得
    • 詳細取得: GET /reservations/{id} — 指定したIDの予約を取得
    • 作成: POST /reservations — 新しい予約を作成
    • 更新: PUT /reservations/{id} — 指定したIDの予約を更新
    • 削除: DELETE /reservations/{id} — 指定したIDの予約を削除
  • リクエスト・レスポンスにPydanticモデル(またはSQLModel)を使用すること
  • 不正なリクエスト(存在しないIDへのアクセス等)に対して、適切なHTTPステータスコードを返すこと

3.2 データベース

  • SQLModelを使用してデータベースにデータを永続化すること
  • 予約テーブル(reservations)には以下の項目を含むこと
カラム名 説明
id INTEGER 主キー(自動採番)
guest_name VARCHAR 予約者名
check_in DATETIME チェックイン日時
check_out DATETIME チェックアウト日時
num_guests INTEGER 宿泊人数
status VARCHAR 予約ステータス(pending / confirmed / cancelled
created_at DATETIME 作成日時
updated_at DATETIME 更新日時

3.3 静的解析

  • flake8とmypyの設定ファイルを用意し、静的解析が通る状態にすること

3.4 自動テスト

  • pytestを使用してAPIの自動テストを作成すること
  • 最低限、予約の作成と取得のテストが含まれていること

4. 提出形式

以下の2項目をまとめて提出してください。

4.1 GitHubリポジトリ

実装したコードをアップロードしたGitHubリポジトリのURLを記載してください。

4.2 まとめ

実装中に苦労したこと、工夫したこと、学んだことを記載してください。

応用課題の採点はライトプラン以上でご利用いただけます。

プランのアップグレード