option

fastapi-router-py

microsoft/skills 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 tout
10
Heure mise à jour 12 septembre 2026

Routeur 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

  1. Créer un routeur dans src/backend/app/routers/
  2. Monter dans src/backend/app/main.py
  3. Créer les modèles Pydantic correspondants
  4. Créer une couche de service si nécessaire
  5. Ajouter les fonctions API du front-end

Bonnes pratiques

  1. Choisissez def ou async def pour 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.
  2. Gérez les ressources à longue durée de vie (pools de bases de données, clients HTTP) dans lifespan et injectez-les via Depends ; utilisez with/async with pour les ressources par requête.
Voir sur GitHub
---
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 fichiers

Installer fastapi-router-py

Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.

Télécharger le ZIP

Clonez 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 Copier
Configuration rapide: Copiez le dossier de la compétence dans .claude/skills/ Claude détectera automatiquement la compétence et l'utilisera

Compétences similaires

algorithmic-art
Heure mise à jour 27 août 2026
receiving-code-review
Heure mise à jour 3 septembre 2026
tech-debt-tracker
Heure mise à jour 29 août 2026
senior-backend
Heure mise à jour 30 août 2026
OR