1: セットアップ
このチュートリアルについて
Section titled “このチュートリアルについて”このチュートリアルでは、FastAPI を使って Web アプリケーション開発の基本を学んでいきます。
- Python の基礎
- ターミナルの基本的な使い方
💡 ターミナル: パソコンに命令を送るための画面です。Windows では「コマンドプロンプト」や「PowerShell」、Mac では「ターミナル」と呼ばれます。
このチュートリアルを進めるにはお使いのパソコンに Python がインストールされている必要があります。 以下のコマンドを実行して Python がインストールされているか確認してください:
💡 コマンド: 「フォルダを作る」「ファイルを開く」など、パソコンに対する命令のことです。
python --version
以下のようにバージョンが表示されれば OK です:
Python 3.11.0
(環境によってバージョン番号が異なる可能性がありますが問題ありません)
Python がインストールされていない場合は、公式サイトからダウンロードしてください。
💡 REPLを起動してしまった場合:
REPLとは「Read-Eval-Print Loop」の略で、Pythonの対話型実行環境のことです。ターミナルでpython
コマンドを実行すると、>>>
というプロンプトが表示され、Pythonのコードを一行ずつ実行できるようになります。REPLが起動した場合の対処法:
>>>
というプロンプトが表示されている場合はREPLが起動しています- REPLを終了するには
Ctrl+C
を押すか、exit()
と入力してEnterを押してください- その後、通常のターミナルに戻ります
FastAPI プロジェクトの作成
Section titled “FastAPI プロジェクトの作成”💡 プロジェクト
家を建てるときには建築現場に必要な道具や材料、設計図などを整理して置きますよね。
FastAPI のプロジェクトも同じようなものです。
Web アプリの開発に必要なものが整理されて入っている「箱」のようなものです。
ターミナルで以下のコマンドを実行してください:
プロジェクトフォルダを作成します:
(フォルダの場所は create-next-app で作成されたフォルダや他の FastAPI プロジェクトの中以外であればどこでも構いません)
mkdir todo-api
作成したフォルダに移動します:
cd todo-api
仮想環境を作成します:
💡 仮想環境:
仮想環境とは Python に備えられた、プロジェクトごとに独立した「作業スペース」を作る仕組みです。 それぞれの仮想環境には、そのプロジェクト専用のPythonライブラリ(パッケージ)がインストールされます。作業スペースをプロジェクトごとに分けることで、プロジェクトごとに自由にライブラリを選択したり、 システム(パソコン)全体の Python 環境を汚さずに済ませることができます。
python -m venv venv
仮想環境を有効化します(Windows の場合):
venv\Scripts\activate
仮想環境を有効化します(Mac/Linux の場合):
source venv/bin/activate
必要なパッケージをインストールします:
pip install --upgrade pippip install fastapi uvicorn sqlalchemy
💡 パッケージ:
追加の機能を提供するプログラムです。
以下のパッケージをインストールしました:
fastapi
: Web API を作るためのフレームワークuvicorn
: Web サーバーsqlalchemy
: データベースを操作するためのライブラリ
インストールしたパッケージとそれぞれのバージョンの一覧を requirements.txt に保存します:
pip freeze > requirements.txt
プロジェクトの基本構造を作成します:
mkdir apptouch app/__init__.pytouch app/main.pytouch app/database.pytouch app/models.pytouch app/schemas.py
これで以下のような構造が作成されます:
todo-api/├── venv/ # 仮想環境(編集不要)├── app/ # アプリケーションのコード│ ├── __init__.py # Python パッケージとして認識するためのファイル│ ├── main.py # メインのアプリケーションコード│ ├── database.py # データベースの設定│ ├── models.py # データベースのモデル定義│ └── schemas.py # APIのスキーマ定義└── requirements.txt # 必要なパッケージの一覧
各ファイルとフォルダの役割を詳しく説明します:
-
venv フォルダ
- Python の仮想環境が保存されるフォルダです
- プロジェクト専用の Python 環境が含まれています
- このフォルダは編集する必要はありません
-
app フォルダ
- アプリケーションのソースコード(プログラム)を格納する場所です
- コードを整理して管理しやすくするために使います
-
__init__.py
- Python パッケージとして認識するためのファイルです
- 空のファイルで問題ありません
-
main.py
-
Webブラウザなどのクライアントに公開する WebAPI を定義します
💡 WebAPI:
WebAPIとはクライアントがサーバーに処理を依頼するときに使う「問い合わせ窓口」です。
サーバーはWebAPIに届いたリクエストに応じてデータの取得などの処理を実行します。具体例:
- 天気アプリが「今日の東京の天気を教えて」と問い合わせる → WebAPIが天気データを返す
- SNSアプリが「この投稿を保存して」と送信する → WebAPIが投稿をデータベースに保存する
- 決済アプリが「この商品の代金を処理して」と要求する → WebAPIが決済処理を実行する
- 地図アプリが「この住所の位置情報を教えて」と問い合わせる → WebAPIが座標データを返す
WebAPIを活用することで自分のアプリに様々な機能を追加できます。
-
-
database.py
- データベースへの接続に必要な設定などを書くファイルです
-
models.py
- データベースのモデル(テーブル)を定義するファイルです
- データの構造を定義します
-
schemas.py
- APIのリクエストとレスポンスのデータ形式を定義するファイルです
- データの検証(バリデーション)と変換に使います
-
requirements.txt
- プロジェクトで使用するパッケージの一覧が書かれているファイルです
- 他の環境でも同じパッケージをインストールするために使います
最初のWebAPI
Section titled “最初のWebAPI”それでは、最初のWebAPIを作成してみましょう。
todo-api/app/main.py
に以下のコードを追加して下さい:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")def read_root(): return {"message": "Hello World"}
サーバーの起動
Section titled “サーバーの起動”APIを起動するには todo-api
フォルダの中で以下のコマンドを実行します:
uvicorn app.main:app --reload
以下のような出力が表示されれば成功です:
INFO: Started server process [xxxxx]INFO: Waiting for application startup.INFO: Application startup complete.INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
ブラウザで http://127.0.0.1:8000
を開くと以下のようなJSONが表示されます:
{ "message": "Hello World"}
また、http://127.0.0.1:8000/docs
にアクセスすると自動生成されたAPIドキュメントを確認できます。
💡 APIドキュメント:
FastAPIが自動的に生成するAPIの説明書です。以下の機能があります:
- インタラクティブなテスト: ブラウザ上でAPIを実際にテストできます
- パラメータの説明: 各APIエンドポイントが受け取るデータの形式を確認できます
- レスポンスの例: APIが返すデータの例を見ることができます
- Try it out: 「Try it out」ボタンをクリックすると、実際にAPIを呼び出して結果を確認できます
この機能により、APIの開発者だけでなく、APIを使う側の人も簡単にAPIの使い方を理解できるようになります。
ターミナルに Ctrl + C
を入力すると開発サーバーを停止できます。