fastapi-router-py
microsoft/skills
Crear enrutadores de FastAPI con operaciones CRUD, dependencias de autenticación y modelos de respuesta adecuados, siguiendo los patrones establecidos.
...Expandir todoEnrutador de FastAPI
Crea enrutadores FastAPI siguiendo los patrones establecidos, con autenticación adecuada, modelos de respuesta y códigos de estado HTTP.
Inicio rápido
Copia la plantilla de assets/template.py y sustituye los marcadores de posición:
{{ResourceName}}→ Nombre en PascalCase (p. ej.,Project){{resource_name}}→ nombre en snake_case (p. ej.,project){{resource_plural}}→ forma plural (p. ej.,projects)
Patrones de autenticación
# 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)
Modelos de respuesta
@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]:
...
Códigos de estado HTTP
@router.post("/items", status_code=status.HTTP_201_CREATED)
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)
Pasos de integración
- Crear un enrutador en
src/backend/app/routers/ - Montar en
src/backend/app/main.py - Crear los modelos Pydantic correspondientes
- Crear una capa de servicio si es necesario
- Añadir funciones de API de front-end
Prácticas recomendadas
- Elige
defoasync defpara cada punto final en función de si realizas llamadas de E/S asíncronas; no mezcles llamadas sincrónicas y asíncronas que bloquean en un mismo controlador. - Gestiona los recursos de larga duración (pools de bases de datos, clientes HTTP) en
lifespane inyecta medianteDepends; utilizawith/async withpara los recursos por solicitud.
---
name: fastapi-router-py
description: Create FastAPI routers with CRUD operations, authentication dependencies, and proper response models following established patterns.
license: MIT
---
# 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](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
## Best Practices
1. **Pick `def` or `async def` per endpoint based on whether you call async I/O;** do not mix sync and async blocking calls in one handler.
2. **Manage long-lived resources (DB pools, HTTP clients) in `lifespan` and inject via `Depends`;** use `with`/`async with` for per-request resources.
Todos los archivos
0 archivosInstalar fastapi-router-py
Descarga y descomprime los archivos de habilidades en tu directorio .claude/skills/.
Descargar ZIPClona el repositorio y copia los archivos de la habilidad a tu proyecto.
git clone https://github.com/microsoft/skills/tree/main/.github/plugins/azure-sdk-python/skills/fastapi-router-py # Copy SKILL.md to your .claude/skills/ directory
Copiar





Hogar
