pydantic-models-py
microsoft/skills
Créez des modèles Pydantic en suivant le motif multi-modèles avec les variantes Base, Create, Update, Response et InDB pour des contrats d'API propres dans des applications Python utilisant Pydantic v2.
...Développer toutModèles Pydantic
Créez des modèles Pydantic en suivant le motif multi-modèles pour des contrats d'API propres.
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)
Motif multi-modèles
| Modèle | Objectif |
|---|---|
| `Base` | Champs communs partagés entre les modèles |
| `Create` | Corps de la requête pour la création (champs obligatoires) |
| `Update` | Corps de la requête pour les mises à jour (tous optionnels) |
| `Response` | Réponse de l'API avec tous les champs |
| `InDB` | Document de base de données avec `doc_type` |
Alias en camelCase
class MyModel(BaseModel):
workspace_id: str = Field(..., alias="workspaceId")
created_at: datetime = Field(..., alias="createdAt")
class Config:
populate_by_name = True # Accepte à la fois snake_case et camelCase
Champs de mise à jour optionnels
class MyUpdate(BaseModel):
"""Tous les champs sont optionnels pour les requêtes PATCH."""
name: Optional[str] = Field(None, min_length=1)
description: Optional[str] = None
Document de base de données
class MyInDB(MyResponse):
"""Ajoute doc_type pour les requêtes Cosmos DB."""
doc_type: str = "my_resource"
Étapes d'intégration
- Créez les modèles dans
src/backend/app/models/ - Exportez depuis
src/backend/app/models/__init__.py - Ajoutez les types TypeScript correspondants
---
name: pydantic-models-py
description: Create Pydantic models following the multi-model pattern with Base, Create, Update, Response, and InDB variants for clean API contracts in Python applications using Pydantic v2.
license: MIT
---
# 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
class MyModel(BaseModel):
workspace_id: str = Field(..., alias="workspaceId")
created_at: datetime = Field(..., alias="createdAt")
class Config:
populate_by_name = True # Accept both snake_case and camelCase
```
## Optional Update Fields
```python
class MyUpdate(BaseModel):
"""All fields optional for PATCH requests."""
name: Optional[str] = Field(None, min_length=1)
description: Optional[str] = None
```
## Database Document
```python
class MyInDB(MyResponse):
"""Adds doc_type for Cosmos DB queries."""
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
Tous les fichiers
0 fichiersInstaller pydantic-models-py
Téléchargez et extrayez 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/pydantic-models-py # Copy SKILL.md to your .claude/skills/ directory
Copier





Maison
