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

コメント