こんにちは、JS2IIUです。
この記事では、Python初心者の方でもすぐに始められるFastAPIの基本的な使い方をご紹介します。PythonでWeb APIを作ってみたいけど、FlaskやDjangoは少しハードルが高そう…と感じている方におすすめです!今回もよろしくお願いします。
FastAPIってなに?
FastAPIは、Python製の軽量・高速なWebフレームワークです。以下のような特徴があります:
- とても高速(StarletteとPydanticに基づいています)
- Pythonの型ヒントを活用してバリデーションや自動ドキュメント生成ができる
- Swagger UI による自動APIドキュメントが超便利
- 非同期(async/await)にも対応していて、スケーラブル
実際にWebアプリやマイクロサービス開発でよく使われている人気のフレームワークです。
開発環境を整えよう
1. Pythonのインストール
まずはPython(3.7以上)をインストールしましょう。インストール方法は、Pythonの公式ページを参照してください。
バージョンを確認します。Mac/Linuxでは以下で確認:
python3 --version2. 仮想環境の作成(おすすめ)
仮想環境を作成して、仮想環境をアクティベートします。
仮想環境を作ることで、インストールするライブラリの管理がしやすくなります。
python -m venv venv
# Linux/Max
source venv/bin/activate
# Windows
venv\Scripts\activate3. 必要なパッケージをインストール
仮想環境をアクティベートした状態で以下のコマンドを実行してください。
pip install fastapi uvicornuvicorn はFastAPIアプリを動かすための軽量ASGIサーバーです。
最初のFastAPIアプリを作ってみよう
まずは main.py というファイルを作成して、次のコードを記述しましょう。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI!"}実行してみよう
以下のコマンドで起動できます:
uvicorn main:app --reload- ブラウザで
http://127.0.0.1:8000にアクセスすると、JSON形式でレスポンスが返ってきます。 http://127.0.0.1:8000/docsにアクセスすると、Swagger UIが表示され、APIを試せます!- Swagger UIは、Web APIの使い方を自動で見える化してくれるツールです。FastAPIでは、APIのエンドポイント(URL)、リクエストの形式、レスポンスの内容などをPythonのコードで定義すると、自動でブラウザから確認・テストできるページを作ってくれます。
パスパラメータとクエリパラメータを使う
パスパラメータとクエリパラメータは、Web APIで値を受け取る方法の2つです。パスパラメータはURLの一部として値を指定し、特定のリソースを識別するときに使います(例:/users/10 はIDが10のユーザー)。一方、クエリパラメータはURLの末尾に「?」を付けてキーと値の組みで指定し、検索条件や絞り込みなどに使われます(例:/search?q=apple は”apple”というキーワードで検索)。FastAPIでは両方を簡単に扱うことができ、用途に応じて使い分けることで、柔軟なAPI設計が可能です。
パスパラメータの例
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id}URLで http://127.0.0.1:8000/users/10 にアクセスすると:
{"user_id": 10}になります。
クエリパラメータの例
@app.get("/search")
def search(q: str = None):
return {"query": q}例えば、http://127.0.0.1:8000/search?q=apple にアクセスすると:
{"query": "apple"}POSTメソッドでデータを受け取る
FastAPIでは、pydantic を使ってJSONデータを簡単に受け取ることができます。
ユーザー登録の例
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
@app.post("/users/")
def create_user(user: User):
return {"message": f"{user.name}さん({user.age}歳)を登録しました"}Swagger UIから以下のようなJSONを送ってテストできます:
{
"name": "Taro",
"age": 25
}レスポンス:
{"message": "Taroさん(25歳)を登録しました"}APIドキュメントが自動で生成される!
FastAPIの素晴らしいところは、自動でAPIのドキュメントが生成されることです。
Swagger UI
http://127.0.0.1:8000/docs にアクセスすると、APIの情報やパラメータ、実行ボタンが表示されます。
Redoc
http://127.0.0.1:8000/redoc にアクセスすると、別のデザインのAPIドキュメントが見られます。
よくあるエラーと対処法
| エラー内容 | 原因と対処法 |
|---|---|
ModuleNotFoundError | fastapi や uvicorn が未インストール。pip install を忘れずに |
ImportError: cannot import name 'FastAPI' | from fastapi import FastAPI を確認 |
TypeError | 関数の引数の型ミス。int, str などを確認 |
/docs にアクセスできない | サーバーが起動していない、またはポートが違う |
まとめ
FastAPIは、初心者でも簡単に始められて、高速・安全なWeb APIを作れるフレームワークです。
- 型ヒントで入力バリデーションも自動化
- Swagger UIでAPIテストが簡単
- 開発スピードが爆速!
参考リンク
最後まで読んでいただきありがとうございます。
ご意見ご質問はコメント欄からよろしくお願いします。

