mcpField
F
fastapi

fastapi

github.com/partme-ai開発72570 回インストール4 週間前に更新
リポジトリ

fastapi について

Python 開発者向けに、FastAPI と Pydantic を使った REST API および非同期 API の構築を支援するスキルです。モデル、依存性注入、認証、ドキュメント、非同期データベース処理、デプロイを扱います。

主な機能

  1. 01REST API と非同期 API の構築
  2. 02Pydantic のリクエスト・レスポンスモデル
  3. 03依存性注入と認証
  4. 04ルーティングと OpenAPI ドキュメント
  5. 05非同期データベース処理

活用シーン

  1. 01検証済みスキーマを使った REST API の構築
  2. 02認証とミドルウェアの追加
  3. 03非同期データベース接続
  4. 04FastAPI アプリのテストとデプロイ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/partme-ai/full-stack-skills --skill fastapi

インストール後、Claude Code で/fastapiを入力して読み込まれたか確認します。

同梱ファイルLICENSE.txt

詳細

このスキルを使用する場面

次のようなことをユーザーが希望している場合は、このスキルを使用します。

  • FastAPI と Pydantic モデルで REST API または非同期 API を構築する
  • 依存性注入、認証、またはミドルウェアを実装する
  • ルーティング、OpenAPI ドキュメント、デプロイを設定する
  • 非同期パターンを使用してデータベースと連携する

このスキルの使い方

ワークフロー
  1. アプリを作成する — FastAPI() をインスタンス化し、ルートハンドラーを定義します
  2. モデルを定義する — リクエストとレスポンスのバリデーションに Pydantic を使用します
  3. 依存関係を追加する — 認証、DB セッションなどの DI を実装します
  4. テストしてデプロイする — uvicorn で実行し、/docs で確認します
クイックスタートの例
from fastapi import FastAPI, HTTPException, Depends
from pydantic import BaseModel
from datetime import datetime

app = FastAPI(title="My API", version="1.0.0")

# Request/Response models
class ItemCreate(BaseModel):
    name: str
    price: float
    description: str | None = None

class ItemResponse(ItemCreate):
    id: int
    created_at: datetime

# Dependency example
async def get_db():
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()

# Route handlers
@app.post("/items/", response_model=ItemResponse, status_code=201)
async def create_item(item: ItemCreate, db=Depends(get_db)):
    db_item = Item(**item.model_dump())
    db.add(db_item)
    db.commit()
    return db_item

@app.get("/items/{item_id}", response_model=ItemResponse)
async def get_item(item_id: int, db=Depends(get_db)):
    item = db.query(Item).get(item_id)
    if not item:
        raise HTTPException(status_code=404, detail="Item not found")
    return item
# Run the server
uvicorn main:app --reload

# Interactive docs available at http://localhost:8000/docs
認証の例
from fastapi.security import OAuth2PasswordBearer

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

@app.get("/users/me")
async def read_current_user(token: str = Depends(oauth2_scheme)):
    user = verify_token(token)
    if not user:
        raise HTTPException(status_code=401, detail="Invalid token")
    return user

ベストプラクティス

  • Pydantic で明示的なリクエストスキーマとレスポンススキーマを定義し、一貫したステータスコードを使用します
  • 高い並行性を実現するため、非同期関数とデータベース接続プールを使用します
  • 本番環境向けに CORS ミドルウェアとセキュリティヘッダーを設定します
  • API の確認には自動生成される OpenAPI ドキュメント(/docs、/redoc)を活用します
  • メール送信などのノンブロッキング処理には BackgroundTasks を使用します

参考資料

キーワード

fastapi, async API, Pydantic, OpenAPI, dependency injection, Python web, REST API, uvicorn

コメント