PythonのFastAPIでREST APIを構築する
FastAPIはPythonの型ヒントを活用した高速なWebフレームワークです。 自動ドキュメント生成、バリデーション、非同期サポートが標準で備わっており、 DjangoやFlaskに比べて少ないコードでAPIを構築できます。
インストールと起動
pip install fastapi uvicorn[standard]
uvicorn main:app --reload
基本的なエンドポイント
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
name: str
age: int
@app.get("/users/{user_id}")
async def get_user(user_id: int):
return {"user_id": user_id}
@app.post("/users")
async def create_user(user: User):
return {"message": f"{user.name}を作成しました"}
依存性注入
from fastapi import Depends
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.get("/items")
def list_items(db: Session = Depends(get_db)):
return db.query(Item).all()
自動ドキュメント
FastAPIは起動すると /docs(Swagger UI)と /redoc に
自動でAPIドキュメントを生成します。フロントエンドとの連携がスムーズになります。
まとめ
FastAPIはFlaskの書きやすさとDjangoのような機能性を両立したフレームワークです。 型ヒントを積極的に使うことでIDEの補完も効き、開発効率が大幅に向上します。