fastapi-router-creator について
保守しやすいFastAPIルーターを作る開発者向けのスキルです。モジュール型とファイルベースのルーティングを説明し、プレフィックス、タグ、依存関係、APIバージョンの構成を扱います。
主な機能
- 01モジュール型ルーターの構成
- 02ファイルベースのルーティング
- 03ルーターレベルのプレフィックスとタグ
- 04ルーター共通の依存関係
- 05バージョン別API名前空間
活用シーン
- 01リソースごとのエンドポイント整理
- 02ルーター単位での認証依存関係の適用
- 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}
ベストプラクティス
- プレフィックス:すべてのエンドポイントのデコレーター内ではなく、ルーターの追加時にプレフィックスを指定します。
- タグ:タグを使って、OpenAPI ドキュメント内のエンドポイントをグループ化します。
- 依存関係:ルーター内のすべてのエンドポイントに適用する依存関係(認証など)は、ルーターレベルで適用します。
router = APIRouter(dependencies=[Depends(get_current_active_user)]) - バージョン:API バージョン(
v1、v2)ごとにルーターを名前空間で分けます。
コメント
Markdown 対応