fastapi-router-py
microsoft/skills
Créer des routeurs FastAPI avec des opérations CRUD, des dépendances d'authentification et des modèles de réponse adaptés, en respectant les modèles établis.
...Développer toutRouteur FastAPI
Créez des routeurs FastAPI en suivant des modèles établis, avec une authentification appropriée, des modèles de réponse et des codes d'état HTTP adaptés.
Démarrage rapide
Copiez le modèle depuis assets/template.py et remplacez les espaces réservés :
{{ResourceName}}→ nom en PascalCase (par ex.,Project){{resource_name}}→ nom en snake_case (par ex.,project){{resource_plural}}→ forme au pluriel (par ex.,projects)
Modèles d’authentification
# 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)
Modèles de réponse
@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]:
...
Codes d’état HTTP
@router.post("/items", status_code=status.HTTP_201_CREATED)
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)
Étapes d’intégration
- Créer un routeur dans
src/backend/app/routers/ - Monter dans
src/backend/app/main.py - Créer les modèles Pydantic correspondants
- Créer une couche de service si nécessaire
- Ajouter les fonctions API du front-end
Bonnes pratiques
- Choisissez
defouasync defpour chaque point de terminaison selon que vous appelez des E/S asynchrones ; ne mélangez pas les appels synchrones et asynchrones bloquants dans un même gestionnaire. - Gérez les ressources à longue durée de vie (pools de bases de données, clients HTTP) dans
lifespanet injectez-les viaDepends; utilisezwith/async withpour les ressources par requête.
---
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.
Tous les fichiers
0 fichiersInstaller fastapi-router-py
Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.
Télécharger le ZIPClonez le dépôt et copiez les fichiers de compétence dans votre projet.
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
Copier





Maison
