💡

FastAPIとは?

2024/12/26に公開

こんにちは!NISLab小板研所属M1の谷津です。
本日は、近年高速なパフォーマンスで人気なFastAPIについてハンズオン形式で紹介したいと思います。

私たちの研究室

https://nisk.doshisha.ac.jp/

アドベントカレンダー26日目

https://nislab-advent-calendar-2024-12.vercel.app

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メソッドがありますので、ぜひ試してみてください!

NISLab 小板研究室

Discussion