👁

応用課題

この章では、Python講座で学んだ内容を応用した課題に取り組みます。

1. 課題の概要

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

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

2. 事前準備

2.1 前提となる講座

この章では、以下の知識を前提としています。自信がない場合は先に関連講座を実施してみましょう。

講座名 必要な知識
Git入門 リポジトリ作成、コミット、Pushなど、Gitの基本操作
データベースとは データベースの基本概念、テーブルやレコードの理解
SQL基本文法 SELECT・INSERT・UPDATE・DELETEなど、SQLの基本操作
Webアプリケーションの基本 HTTPリクエスト・レスポンスやWebアプリケーションの基本構造
テストの考え方 単体テスト・カバレッジなど、テストの基本概念

2.2 必要なツール

この章では、以下のツールを使用します。まだインストールしていない場合は、リンク先の手順に沿って準備をお願いします。

ツール名 関連箇所 理由
Visual Studio Code Visual Studio Codeのインストール 応用課題のコードを記述するエディタとして使用する
Python Pythonのインストール REST APIの実装・実行環境として使用する
MySQL MySQLのインストール REST APIから接続するデータベースとして使用する
Git Git/GitHubのセットアップ ソースコードのバージョン管理に使用する

2.3 必要なアカウント

この章では、以下のアカウントを使用します。まだ用意していない場合は、リンク先の手順に沿って準備をお願いします。

アカウント名 関連箇所 理由
GitHubアカウント Git/GitHubのセットアップ 応用課題のソースコードのホスティング先として使用する

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 まとめ

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

応用課題の採点はプレミアムプランでご利用いただけます。

プランのアップグレード

この教材は役に立ちましたか?

いいねをたくさんいただけると、制作者の励みになり、より多くのセクションが作れるようになります。

感想を一言(任意)

いただいたコメントは次の制作のヒントになります。ぜひお気軽にご投稿ください。

このコメントは他の受講生には公開されません。DevOps Camp運営が、教材改善のために確認します。

0 / 2000