4-3. FastAPIによるモダンWeb API開発

FastAPIは、Python 3.8+の標準機能(型ヒント、非同期処理)をフル活用した最新鋭のAPI開発フレームワークです。

FastAPIの圧倒的アドバンテージ

  • 高速性: Node.jsやGo言語に迫る超高速動作(StarletteとPydanticを基盤)
  • 自動ドキュメント生成: /docs にアクセスするだけで、対話型Swagger UI仕様書が自動で立ち上がる
  • 非同期(async/await)対応: 重いI/O処理を非同期で効率よく捌く

Pydanticバリデーションとレスポンスモデル

Python

from fastapi import FastAPI, HTTPException, status
from pydantic import BaseModel, EmailStr, Field

app = FastAPI(title="User Management API")

# リクエストバリデーション用スキーマ
class UserCreate(BaseModel):
    username: str = Field(..., min_length=3, max_length=50)
    email: EmailStr
    age: int = Field(..., ge=18)  # 18歳以上

# レスポンス出力用スキーマ (パスワード等の感性情報を除外)
class UserResponse(BaseModel):
    id: int
    username: str
    email: EmailStr

@app.post("/users", response_model=UserResponse, status_code=status.HTTP_201_CREATED)
async def create_user(user: UserCreate):
    # Pydanticが型チェック・自動バリデーションを実施
    new_user = {"id": 1, "username": user.username, "email": user.email}
    return new_user

コメント

タイトルとURLをコピーしました