microsoft/fastapi-router-py
Create FastAPI routers with CRUD operations, authentication dependencies, and proper response models. Use when building REST API endpoints, creating new routes, implementing CRUD operations, or adding authenticated endpoints in FastAPI applications.
npx skills add https://github.com/microsoft/skills --skill fastapi-router-py
Create FastAPI routers following established patterns with proper authentication, response models, and HTTP status codes.
Copy the template from assets/template.py and replace placeholders:
{{ResourceName}} → PascalCase name (e.g., Project){{resource_name}} → snake_case name (e.g., project){{resource_plural}} → plural form (e.g., 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]:
...
@router.post("/items", status_code=status.HTTP_201_CREATED)
async def create_item(item: ItemCreate) -> Item:
...
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)
async def delete_item(id: str) -> None:
...
src/backend/app/routers/src/backend/app/main.pydef or async def per endpoint based on whether you call async I/O; do not call blocking I/O from an async def handler.lifespan and inject via Depends; use with/async with for per-request resources.| File | Contents |
|------|----------|
| references/capabilities.md | Additional non-hero capabilities, operation-group coverage, and production checklists. |
Take microsoft/fastapi-router-py from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.