FastAPIはPythonの高速・高機能なWebフレームワークです。型ヒントを活用した自動バリデーションとSwagger UIによるドキュメント自動生成が特徴です。
FastAPIのインストール
pip install fastapi uvicorn[standard]最小構成のAPIサーバー
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI!"}
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id, "name": "Taro"}
@app.get("/items")
def get_items(skip: int = 0, limit: int = 10):
return {"skip": skip, "limit": limit}uvicorn main:app --reload
# http://localhost:8000 でアクセス
# http://localhost:8000/docs でSwagger UIが自動生成されるリクエストボディの受け取り
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class UserCreate(BaseModel):
name: str
email: str
age: int = 0 # デフォルト値
@app.post("/users", status_code=201)
def create_user(user: UserCreate):
# user.name, user.email, user.age で値にアクセス
return {"id": 1, **user.model_dump()}FastAPIとFlaskの比較
| 比較項目 | Flask | FastAPI |
|---|---|---|
| パフォーマンス | 普通 | 非常に高い(非同期対応) |
| 型バリデーション | 手動 | Pydanticで自動 |
| ドキュメント生成 | なし | Swagger UIが自動生成 |
| 学習コスト | 低い | やや高い |
まとめ
- FastAPIはuvicornで起動し、/docsでSwagger UIが自動生成される
- デコレーターでHTTPメソッドとURLを定義する
- Pydanticのモデルでリクエストボディを型安全に受け取れる



コメント