fastapi-router-py について
FastAPIルーターの作成に使うスキルです。認証パターン、レスポンスモデル、HTTPステータスコードを扱うテンプレートを提供し、CRUDルートでの所有者やテナントの認可確認を重視します。
主な機能
- 01FastAPIルーターテンプレート
- 02任意および必須の認証パターン
- 03レスポンスモデルとHTTPステータスコード
- 04所有者とテナントの認可ガイダンス
活用シーン
- 01CRUDルーターのひな型作成
- 02APIルートへの認証追加
- 03CRUDエンドポイントの所有権チェック
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill fastapi-router-pyインストール後、Claude Code で/fastapi-router-pyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
UPSTREAM-LICENSE.txtUPSTREAM-NOTICE.mdassets/template.py詳細
同梱された上流サポートファイル
サポートファイルはスキルからの相対パスに含まれています。固定されたソース、ライセンス、ハッシュ、インポート時の変更については、UPSTREAM-NOTICE.md を参照してください。
FastAPI ルーター
適切な認証、レスポンスモデル、HTTP ステータスコードを備えた、確立されたパターンに沿う FastAPI ルーターを作成します。
認可要件
このテンプレートでは author_id を所有者フィールドとして想定しています。使用前に実際のモデルに合わせてください。更新・削除時のチェックは必須です。公開されていないリソースでは、リスト取得と個別取得にも認証とテナント/所有者によるフィルタリングが必要です。できればアトミックなサービスクエリで実施してください。認証だけでは認可になりません。すべての CRUD ルートについて、匿名アクセス、別の所有者、別のテナントによるアクセスをテストしてください。プレースホルダーを置換して統合するまでは、テンプレートは実行可能な Python ではありません。
クイックスタート
assets/template.py からテンプレートをコピーし、プレースホルダーを置き換えます。
{{ResourceName}}→ PascalCase の名前(例:Project){{resource_name}}→ snake_case の名前(例:project){{resource_plural}}→ 複数形(例:projects)
認証パターン
# Optional auth - returns None if not authenticated
current_user: Optional[User] = Depends(get_current_user)
# Required auth - raises 401 if not authenticated
current_user: User = Depends(get_current_user_required)
レスポンスモデル
@router.get("/items/{item_id}", response_model=Item)
async def get_item(item_id: str) -> Item:
...
@router.get("/items", response_model=list[Item])
async def list_items() -> list[Item]:
...
HTTP ステータスコード
@router.post("/items", status_code=status.HTTP_201_CREATED)
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)
統合手順
src/backend/app/routers/にルーターを作成しますsrc/backend/app/main.pyでマウントします- 対応する Pydantic モデルを作成します
- 必要に応じてサービスレイヤーを作成します
- フロントエンドの API 関数を追加します
使用する場合
このスキルは、概要に記載されたワークフローやアクションを実行する場合に適用できます。
制限事項
- このスキルは、タスクが上記の範囲に明確に合致する場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中止して確認を求めてください。
コメント
Markdown 対応