En bref
Guide la création de modèles Pydantic selon le schéma à plusieurs variantes : Base, Create, Update, Response et InDB. Le recours se justifie pour définir des schémas de requête ou de réponse d’API, des modèles de base de données, ou une validation de données dans une application Python qui utilise Pydantic v2. Cette skill appartient au catalogue officiel microsoft/skills (ensemble azure-sdk-python).
Ce que ça fait
- Pose les variantes Base, Create, Update, Response et InDB
- Sert aux schémas d’API, aux modèles de base et à la validation v2
Pour qui, et un exemple
Les développeurs Python qui structurent leurs modèles Pydantic v2 selon ce schéma à plusieurs variantes.
Exemple de demande : « Définis les modèles Pydantic v2 de cette ressource, avec les variantes Base, Create, Update, Response et InDB. »
À choisir pour des schémas de requête ou de réponse, des modèles de base de données, ou une validation avec Pydantic v2, selon le schéma multi-modèles. Exemple rédigé par iadujour.fr à partir du SKILL.md, non testé.
Installer
npx skills add microsoft/skills (sélection de la skill dans l’assistant, README).
npx skills add microsoft/skillsFonctionne avec
- GitHub Copilot
- Copilot CLI
Source : README : exemples de « Copilot CLI » et « GitHub Copilot in VS Code » ; l’installation `npx skills add` envoie les fichiers vers le répertoire de l’agent choisi, sans liste exhaustive.
Niveau : Intermédiaire
Suppose un projet de l’éditeur et la maîtrise du SDK ou de la CLI correspondante.
À savoir
Extrait du SKILL.md
La description d’origine, celle que l’agent lit pour décider de charger la skill (en anglais) :
Create Pydantic models following the multi-model pattern with Base, Create, Update, Response, and InDB variants. Use when defining API request/response schemas, database models, or data validation in Python applications using Pydantic v2.
Citée depuis le SKILL.md au commit 4a2873f . Le dossier contient aussi 2 fichiers annexes (assets/, references/).
Le SKILL.md compte 62 lignes et 7 sections principales :
- Quick Start
- Multi-Model Pattern
- camelCase Aliases
- Optional Update Fields
- Database Document
- Integration Steps
- Reference Files
Licence : MIT
Vérifiée le 10 novembre 2026 sur : fichier LICENSE du dépôt . Licence déclarée dans le frontmatter : « MIT ». Titulaire : Copyright (c) Microsoft Corporation..
La licence autorise la reprise : le texte intégral du SKILL.md est reproduit ci-dessous, sans modification, avec sa mention de licence.
Texte intégral du SKILL.md
Reproduit sans modification depuis microsoft/skills (commit 4a2873f) , © Microsoft, sous licence MIT (fichier de licence d’origine ).
Afficher le SKILL.md original (62 lignes, en anglais)
---
name: pydantic-models-py
description: Create Pydantic models following the multi-model pattern with Base, Create, Update, Response, and InDB variants. Use when defining API request/response schemas, database models, or data validation in Python applications using Pydantic v2.
license: MIT
metadata:
author: Microsoft
version: "1.0.0"
---
# Pydantic Models
Create Pydantic models following the multi-model pattern for clean API contracts.
## 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`)
## Multi-Model Pattern
| Model | Purpose |
|-------|---------|
| `Base` | Common fields shared across models |
| `Create` | Request body for creation (required fields) |
| `Update` | Request body for updates (all optional) |
| `Response` | API response with all fields |
| `InDB` | Database document with `doc_type` |
## camelCase Aliases
```python
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field
class MyModel(BaseModel):
model_config = ConfigDict(populate_by_name=True)
workspace_id: str = Field(..., alias="workspaceId")
created_at: datetime = Field(..., alias="createdAt")
```
## Optional Update Fields
```python
class MyUpdate(BaseModel):
model_config = ConfigDict(populate_by_name=True)
name: Optional[str] = Field(None, min_length=1)
description: Optional[str] = None
```
## Database Document
```python
class MyInDB(MyResponse):
doc_type: str = "my_resource"
```
## Integration Steps
1. Create models in `src/backend/app/models/`
2. Export from `src/backend/app/models/__init__.py`
3. Add corresponding TypeScript types
## Reference Files
| File | Contents |
|------|----------|
| [references/capabilities.md](references/capabilities.md) | Additional non-hero capabilities, operation-group coverage, and production checklists. |
Commentaires.
Un retour d’expérience, une question, une précision sur cette skill ? Les commentaires sont relus avant publication.
Commentaires publiés
Chargement des commentaires…
Laisser un commentaire
Charte de modération. Chaque commentaire est relu avant publication. Sont refusés : l’incitation à la haine, les propos injurieux ou discriminatoires, la publicité, le spam et les liens promotionnels, le hors-sujet et les données personnelles d’autrui.