mcpField
F
fastapi-router-creator

fastapi-router-creator

github.com/first-fluke開発22546 回インストール4 日前に更新
リポジトリ

fastapi-router-creator について

保守しやすいFastAPIルーターを作る開発者向けのスキルです。モジュール型とファイルベースのルーティングを説明し、プレフィックス、タグ、依存関係、APIバージョンの構成を扱います。

主な機能

  1. 01モジュール型ルーターの構成
  2. 02ファイルベースのルーティング
  3. 03ルーターレベルのプレフィックスとタグ
  4. 04ルーター共通の依存関係
  5. 05バージョン別API名前空間

活用シーン

  1. 01リソースごとのエンドポイント整理
  2. 02ルーター単位での認証依存関係の適用
  3. 03バージョン化したFastAPI APIの構成

インストール

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

$npx skills add https://github.com/first-fluke/fullstack-starter --skill fastapi-router-creator

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

詳細

FastAPI ルーターの作成

このスキルでは、保守性とスケーラビリティを重視し、モジュール化された整理しやすい FastAPI ルーターの作成方法を説明します。

ルーティング戦略

1. モジュール化ルーターパターン(標準)

FastAPI で最も一般的かつ推奨されているアプローチです。

構成:

src/api/v1/endpoints/
├── users.py
├── items.py
└── auth.py

実装:

src/api/v1/endpoints/users.py:

from fastapi import APIRouter

router = APIRouter()

@router.get("/")
async def get_users():
    ...

src/api/v1/api.py(集約ファイル):

from fastapi import APIRouter
from src.api.v1.endpoints import users, items

api_router = APIRouter()
api_router.include_router(users.router, prefix="/users", tags=["users"])
api_router.include_router(items.router, prefix="/items", tags=["items"])
2. ファイルベースのルーティング(fastapi-router)

ファイル構成に応じて URL が決まる、Next.js のような使い方です。(fastapi-router ライブラリまたはカスタムウォーカーが必要です。)

構成:

src/app/
├── api/
│   ├── users/
│   │   ├── route.py  # Handles /api/users
│   │   └── [id]/
│   │       └── route.py # Handles /api/users/{id}

ベストプラクティス

  1. プレフィックス:すべてのエンドポイントのデコレーター内ではなく、ルーターの追加時にプレフィックスを指定します。
  2. タグ:タグを使って、OpenAPI ドキュメント内のエンドポイントをグループ化します。
  3. 依存関係:ルーター内のすべてのエンドポイントに適用する依存関係(認証など)は、ルーターレベルで適用します。
    router = APIRouter(dependencies=[Depends(get_current_active_user)])
    
  4. バージョン:API バージョン(v1、v2)ごとにルーターを名前空間で分けます。

コメント