FastAPI はじめのステップ
目次
- パッケージのインストール
- FastAPI を使ってみる
- (補足) def か async def か
- Next: Chapter2 ディレクトリ構成
- Prev: Chapter0 FastAPI 開発環境構築
パッケージのインストール
以下のコマンドで FastAPI をインストールします。
pip install fastapi
また、サーバーとして利用できる uvicorn もインストールします。
pip install "uvicorn[standard]"
FastAPI を使ってみる
スクリプトの記述
まず、作業を行うディレクトリを作成してください。ここでは、app
というディレクトリを作成します。ディレクトリに以下 2 つのファイルを作成してください。
app/__init__.py
app/main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
return {"message": "Hello World"}
ディレクトリの構成は、以下のようになります。
app
├ __init__.py
└ main.py
サーバーの起動
app
ディレクトリがあるディレクトリで、以下のコマンドを実行し、サーバーを起動します。
uvicorn app.main:app --reload --port 8000
チェック
ブラウザでhttp://127.0.0.1:8000を開きます。 次のような JSON レスポンスが表示されれば、成功です!
{ "message": "Hello World" }
対話的 API ドキュメント(Swagger UI)
FastAPI では、/docs
にアクセスすることで、自動生成されたドキュメントにアクセスすることができます。
ブラウザでhttp://127.0.0.1:8000/docsにアクセスしてみましょう。次のような画面が表示されます。
ここでは、自分が作成したエンドポイントを試すことができます。エンドポイントを開き、Try it out
と書かれたボタンを押すと、パラメータを設定する画面が開き、Execute
を押せば設定したパラメータでリクエストを送ることができます。
(補足) def か async def か
- async def を使うケース
- async/await をサポートしているライブラリを利用する場合。
- 他の何とも通信せず、応答を待つ必要がない場合。
- def を使うケース(ほとんどの場合は、こっち)
- async/await をサポートしていないライブラリを利用する場合。
- よく分からない場合。
公式サイトでasync def に関する解説があります。