【FastAPI覚書】FastAPIを試す

環境構築

Python3.6以上のバージョンで仮想環境を作ります。今回はバージョン3.12で仮想環境を構築することにします。

# 仮想環境を構築
uv venv -p 3.12 .venv312
# 仮想環境を有効化
.venv312\Script\activate

作成した環境にFastAPIとUvicornをインストールします。Uvicornは高速かつ軽量なASGI(Asynchronous Server Gateway Interface)サーバーであり、Pythonの非同期WebアプリケーションとWebサーバー間の通信を標準化するためのインターフェース仕様を提供します。

uv pip install fastapi uvicorn

これで最低限の環境構築は完了です。

エンドポイントと処理内容の記述

現在いる階層に以下の内容でmain.pyを作成します。

from fastapi import FastAPI

# FastAPIのインスタンスを生成する
app = FastAPI()

@app.get('/')  # FastAPIインスタンスにエンドポイントを紐づける
def index():   # エンドポイントに対する処理の内容を記述する
    return {'text': 'hello'}

エンドポイントの紐づけと処理を定義をどのファイルのどんな名前のFastAPIインスタンスにしたかはサーバーの起動時に必要になってきます。忘れないように控えておいてください。

サーバーの起動

以下のコマンドでWebアプリケーションを起動します。

uvicorn main:app --reload --port 8000

main:appはmain.pyのappインスタンスをWebアプリケーションとして起動する、という意味になります。--reloadをつけておくことでコードに変更が加えられてもブラウザ側が自動で変更を反映してくれます。--portではWebサーバーを利用するためのポート番号を指定します。

SwaggetUIによるWebアプリケーションの実行

http://localhost:8000/docsから作成したエンドポイントの一覧が確認できます。確認するだけではなく、定義したエンドポイントに対する処理を実行することも可能です。