Modèles Pydantic
Créez des modèles Pydantic suivant le pattern multi-modèle pour des contrats API propres.
Démarrage rapide
Copiez le template depuis assets/template.py et remplacez les placeholders :
{{ResourceName}}→ nom en PascalCase (ex.Project){{resource_name}}→ nom en snake_case (ex.project)
Pattern Multi-Modèle
| Modèle | Objectif |
|---|---|
Base |
Champs communs partagés entre les modèles |
Create |
Corps de requête pour la création (champs obligatoires) |
Update |
Corps de requête pour les mises à jour (tous optionnels) |
Response |
Réponse API avec tous les champs |
InDB |
Document de base de données avec doc_type |
Alias camelCase
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
Champs optionnels pour les mises à jour
class MyUpdate(BaseModel):
"""All fields optional for PATCH requests."""
name: Optional[str] = Field(None, min_length=1)
description: Optional[str] = None
Document de base de données
class MyInDB(MyResponse):
"""Adds doc_type for Cosmos DB queries."""
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