Generate FastAPI Routers with Auth and Models
A FastAPI router skill that scaffolds REST endpoints with authentication patterns, response models, and proper HTTP status codes following established
Why it matters
Automate the creation of robust FastAPI routers, ensuring adherence to best practices for authentication, response modeling, and HTTP status codes.
Outcomes
What it gets done
Generate boilerplate code for FastAPI routers.
Implement standard authentication patterns (optional and required).
Define response models for API endpoints.
Set appropriate HTTP status codes for CRUD operations.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-fastapi-router-py | bash Capabilities
What this skill does
Writes source code or scripts from a description.
Analyzes code for bugs, style issues, and improvements.
Traces errors to their root cause and suggests fixes.
Overview
FastAPI Router
What it does
This skill provides a template-based approach to creating FastAPI routers with established patterns. It includes authentication patterns (optional and required), response model typing with Pydantic, proper HTTP status codes (201 for creation, 204 for deletion), and a structured integration workflow. You copy the template, replace placeholders with your resource names in PascalCase and snake_case, then mount the router in your FastAPI application.
How it connects
Use this skill when building REST API endpoints in FastAPI applications that require consistent authentication handling, typed response models, and proper HTTP semantics. It's ideal when you need to quickly scaffold new resource routers following team conventions, or when you want to ensure your endpoints use correct status codes and authentication dependencies.
Source README
FastAPI Router
Create FastAPI routers following established patterns with proper authentication, response models, and HTTP status codes.
Quick Start
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)
Authentication Patterns
# 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)
Response Models
@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 Status Codes
@router.post("/items", status_code=status.HTTP_201_CREATED)
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)
Integration Steps
- Create router in
src/backend/app/routers/ - Mount in
src/backend/app/main.py - Create corresponding Pydantic models
- Create service layer if needed
- Add frontend API functions
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.