技術関連メディア

【初心者向け】FastAPIの下準備および基本操作の備忘録

FastAPIを初めて触る人向けの内容です(。・ω・。)ノシ

≪今回の実行環境≫

OS:Windows11

Python:3.10.8

IDE:VSCode

仮想環境:venv

ターミナル:cmd

1.仮想環境を用意する

任意のファイルを用意し、ターミナルで仮想環境を構築します。

仮想環境にも色々ありますが、今回はvenvを使用します。

※環境による差異を減らすためDockerが推奨されていますが、今回は簡易実行のためvenvとします。

例えば、Python3.10.8の場合は-3.10と記入します。

※2024年2月の時点で最新バージョンはPython 3.12.2なのでいい加減アップデートせねば~。良い子は最新版でやりましょう。

py -3.10 -m venv .venv

次に、

.venv\Scripts\activate.bat

をターミナルに入力し、アクティブにします。

コピペの場合、ターミナル上でマウスを右クリックすると簡単にペーストできるのでおすすめです。

実行後、ターミナルに(.venv)と出たら仮想環境の準備は完了です。

2.FastAPIをインストールする

仮想環境上でFastAPIをインストールしていきます。

ターミナルに下記を記入します。

pip install fastapi

この時もし、

WARNING: You are using pip version 21.2.4; however, version 24.0 is available.
You should consider upgrading via the ‘C:\Users\ユーザー名\Desktop\fsapi.venv\Scripts\python.exe -m pip install –upgrade pip’ command.

pipをアップグレードするよう警告が出た場合は、アップグレードしておきます。

ちなみに、pip install –upgrade pipを実行すると怒られました。

ERROR: Could not install packages due to an OSError: [WinError 5] アクセスが拒否されました。: ‘C:\Users\ユーザー名\AppData\Local\Temp\pip-uninstall-u1jgygzi\pip.exe’
Check the permissions.

pipをアップグレードする場合は、

python -m pip install --upgrade pip

が正解です。

Requirement already satisfied~が出たらOKです。

続いて、uvicornをインストールします。

pip install "uvicorn[standard]"

Successfully~が出たらOKです。

3.ファイルを実行し、それぞれの表示を確認する

最初に用意しておいた任意のフォルダ内に、main.pyなどのpyファイルを作成します。

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hi": "OK"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

ファイルを保存したら、ターミナルで下記を実行します。

uvicorn main:app --reload

先ずは、http://127.0.0.1:8000/items/5?q=somequeryをブラウザのURL欄にコピペしてJSONのレスポンスを確認してみましょう。

ブラウザ上に{“item_id”:5,”q”:”somequery”}と表示されていればOKです。

続いて、Swagger UIが提供している自動対話型のAPIドキュメントを確認します。

http://127.0.0.1:8000/docsをブラウザのURL欄にコピペして表示を確認してみましょう。

素晴らしいUIに幸せを感じます(。・ω・。)

続いて、http://127.0.0.1:8000/redocをブラウザのURL欄にコピペして、ReDocが提供している代替の自動ドキュメントを確認します。この時、表示まで10秒ほど待機する場合がありますが心配ありません。

4. Pydanticを導入する

PUTリクエストを受け取るためにPydanticを導入します。
サーバーは自動でリロードされるため再読み込みは不要です。

pyファイルの中身をこのように書き換えてみます。

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Item(BaseModel):
    name: str
    price: float
    is_offer: bool = None


@app.get("/")
def read_root():
    return {"Hi": "OK"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}


@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

保存をしたら、http://127.0.0.1:8000/docsを開いて確認してみましょう。
自動対話型のAPIドキュメントがアップデートされています。

ではここで、Try it outボタンをクリックして実行してみましょう。

下側に移動してレスポンスを確認し、Code200で成功していることを確認します。

今度はhttp://127.0.0.1:8000/redocでチェックしてみましょう。

アップデートされていることが確認できました。

基本的な準備と操作は以上となります。

公式ドキュメント

FastAPI

https://fastapi.tiangolo.com/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA