⑧Web開発

FastAPIで作るREST API入門【PythonでAPIサーバーを構築する】

⑧Web開発
記事内に広告が含まれています。

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の比較

比較項目FlaskFastAPI
パフォーマンス普通非常に高い(非同期対応)
型バリデーション手動Pydanticで自動
ドキュメント生成なしSwagger UIが自動生成
学習コスト低いやや高い

まとめ

  • FastAPIはuvicornで起動し、/docsでSwagger UIが自動生成される
  • デコレーターでHTTPメソッドとURLを定義する
  • Pydanticのモデルでリクエストボディを型安全に受け取れる

コメント

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