FastAPIとは?
こんにちは!NISLab小板研所属M1の谷津です。
本日は、近年高速なパフォーマンスで人気なFastAPIについてハンズオン形式で紹介したいと思います。
私たちの研究室
アドベントカレンダー26日目
FastAPIとは?
FastAPIとは、高速で使いやすいPython製のWeb APIフレームワークで、非同期処理や型アノテーションを活用して高いパフォーマンスと開発効率を実現します。
主に以下の特徴を持っています。
- 非同期処理に対応しており、高速なパフォーマンスを実現
- Pythonの型ヒントを利用した型アノテーションに対応
- APIドキュメントを自動生成
- 公式ドキュメントが充実していて学習しやすい
環境構築
FastAPIを実行するための環境を構築します。
ディレクトリを作成
私は"fastapi-test"という名前でデスクトップ上に作成しました。
cd Desktop/
mkdir fastapi-test
作成したらVisual Studio Codeを開き、ディレクトリを開いてください。
仮想環境の作成
標準ライブラリとして提供されているvenvモジュールを使用します。
VScode上でターミナルを開いてください。
1. myenvという名前の仮想環境の作成
python -m venv myenv
このようにmyenvのディレクトリが作成されていれば成功です。
2. 作成した仮想環境のActivate化
Macの場合
source myenv/bin/activate
Windowsの場合
myenv/Scripts/activate.bat
3. fastapiとuvicornのインストール
uvicornとは、fastapiのコードを実行するためのサーバーです。
pip install fastapi
pip install "uvicorn[standard]"
4. fastapiとuvicornが正常にインストールされているか確認
pip list
このように、fastapiとuvicornが確認できれば成功です。
FastAPIの基本的な使用
1. ファイルの作成
fastapi-testディレクトリ直下に、main.pyと__init__.pyを作成します。
※myenv直下ではありません。myenvと同等の階層にファイルを作成してください。
2. main.pyにコードを記述
以下のコードをmain.pyに貼り付けてください。
from fastapi import FastAPI
app = FastAPI()
"""
デコレーターはexample関数をFastAPIのエンドポイントとするために必要
getはHTTPメソッドのうち、GETリクエストを示す
"/"はリクエストのパスを示す
"""
@app.get("/")
async def example():
return {"message":"Hello world!"}
3. FastAPIの実行
以下のコマンドで実行します。
uvicorn main:app --reload
もう一つ別でターミナルを開き、以下のコマンドを打ちます。
curl localhost:8000
このように返答が返ってくれば成功です。
{"message":"Hello world!"}%
4. 自動生成APIドキュメントの使用
ブラウザで以下のurlを打ってください。
http://localhost:8000/docs
すると、FastAPIの自動生成APIドキュメント画面が表示されます。
右上のトグルボタンを押し、次にTry it outボタンをクリックしてください。
Executeボタンをクリックすると、先ほどの"message": "Hello world!"が返ってきていることが確認できます。
このように、FastAPIでは他のAPIと違ってcurlコマンド等を打たなくても、自動生成APIドキュメントを利用してAPIの動作確認を行うことができます。
最後に
今回はFastAPIについて紹介しました。
FastAPIの基本的な特徴や利便性などを体感していただけたら幸いです。
この記事ではGETリクエストを使いましたが、他にもPOST、PUT、DELETEといったHTTPメソッドがありますので、ぜひ試してみてください!
Discussion