😗

WSLでFastAPIをちゃちゃっと構築して体感する🐤

2025/03/24に公開

はじめに

みなさん、こんにちは!🐤 フリーランス社会人学生(心理学)のたつのぶです!!

本記事では、「FastAPIをWSL(Ubuntu 20.04.6 LTS)」 にちゃっちゃと構築する方法を記述しています。

FastAPIは、Pythonで簡単にAPIを作れる便利なフレームワークですが、「環境構築が難しそう…」と感じる方もいるかもしれません。
この記事を読めば、WSL環境でFastAPIをスムーズに動かせるようになります。
さっそく、手順を見ていきましょう!

python製WEBフレームワークFastAPIの特徴✋

高速

StarletteとPydanticを使用しており、非常に高速(FlaskやDjangoよりもパフォーマンスが良い)。

自動ドキュメント生成

OpenAPI(Swagger)とReDocのドキュメントを自動生成。

型ヒント(型アノテーション)

Pythonの型ヒントを活用し、データのバリデーションを自動化。

非同期処理(async/await)に対応

非同期(async)に対応しており、高速なAPIが作れる。

flaskとfastAPIの比較

比較項目 FastAPI Flask
速度 高速(Starlette + Pydanticで最適化) 比較的遅め(同期処理ベース)
非同期処理 対応(async/await) 非対応(拡張で可能だが標準ではなし)
型ヒントの活用 あり(Pydanticによるバリデーション) なし(手動でバリデーションが必要)
自動ドキュメント生成 あり(Swagger, ReDoc) なし(拡張が必要)
学習コスト 中(型ヒントに慣れが必要) 低(シンプルで理解しやすい)
エコシステム・拡張性 比較的新しい(周辺ライブラリは増加中) 豊富な拡張機能(長い歴史がある)
用途 高速API、マイクロサービス向け 小規模アプリ、シンプルなAPI向け

WSL(Ubuntu 20.04.6 LTS)でFastAPIの環境を構築

  1. WSLの導入
    今回の記事では省略します。別記事等を参照ください。
  2. WSLの更新
    まず、WSLのUbuntuを最新の状態に更新します。
sudo apt update && sudo apt upgrade -y
  1. Pythonのインストール
    Ubuntu 20.04にはPython 3が標準でインストールされていますが、念のため確認しましょう。
python3 --version

もしインストールされていなければ、以下のコマンドでPythonをインストールします。

sudo apt install python3 python3-pip python3-venv -y
  1. 仮想環境の作成
    FastAPIのプロジェクト用に仮想環境を作成します。
mkdir fastapi_project
cd fastapi_project
python3 -m venv venv

仮想環境を有効化:

source venv/bin/activate

※有効化されると、プロンプトの先頭に (venv) が付きます。

  1. FastAPIのインストール
    仮想環境内にFastAPIとASGIサーバーの uvicorn をインストールします。
pip install fastapi uvicorn
  1. サンプルAPIの作成
    main.py というファイルを作成し、以下のコードを記述します。
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def test_endpoint():
    return {"message": "Hello, FastAPI from WSL!"}
  1. APIの起動
    以下のコマンドでFastAPIを起動します。
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
  1. Windowsのブラウザからアクセス

Windowsのブラウザで localhost:8000 にアクセスすると、{"message": "Hello, FastAPI from WSL!"} が表示されるはずです。

また、FastAPIの自動ドキュメントも確認できます。

✔ Swagger UI

http://localhost:8000/docs

さいごに☺

今回は、WSL(Ubuntu 20.04.6 LTS)上でFastAPIをセットアップし、実際にAPIを動かすところまでを解説しました。🚀
FastAPIは高速かつ簡単にAPIを作成できるので、ぜひ活用してみてください!

ゴロゴロシステムズでは、「労務・人事・業務・メンタルヘルス課題のDXを通じて、こころの労働負荷を削減」 をモットーに活動しています。
今後も技術情報を発信していくので、良かったらチェックしてくださいな🐤

ゴロゴロシステムズHP

Discussion