- Add date_added to all 950+ skills for complete tracking - Update version to 6.5.0 in package.json and README - Regenerate all indexes and catalog - Sync all generated files Features from merged PR #150: - Stars/Upvotes system for community-driven discovery - Auto-update mechanism via START_APP.bat - Interactive Prompt Builder - Date tracking badges - Smart auto-categorization All skills validated and indexed. Made-with: Cursor
59 lines
1.6 KiB
Markdown
59 lines
1.6 KiB
Markdown
---
|
|
name: fastapi-router-py
|
|
description: "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 add..."
|
|
risk: unknown
|
|
source: community
|
|
date_added: "2026-02-27"
|
|
---
|
|
|
|
# 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
|
|
|
|
```python
|
|
# 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
|
|
|
|
```python
|
|
@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
|
|
|
|
```python
|
|
@router.post("/items", status_code=status.HTTP_201_CREATED)
|
|
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)
|
|
```
|
|
|
|
## Integration Steps
|
|
|
|
1. Create router in `src/backend/app/routers/`
|
|
2. Mount in `src/backend/app/main.py`
|
|
3. Create corresponding Pydantic models
|
|
4. Create service layer if needed
|
|
5. Add frontend API functions
|
|
|
|
## When to Use
|
|
This skill is applicable to execute the workflow or actions described in the overview.
|