pydantic-models-py
microsoft/skills
Cree modelos de Pydantic siguiendo el patrón de múltiples modelos con variantes Base, Create, Update, Response e InDB para contratos de API limpios en aplicaciones Python que utilizan Pydantic v2.
...Expandir todoModelos de Pydantic
Crea modelos de Pydantic siguiendo el patrón de múltiples modelos para contratos de API limpios.
Inicio rápido
Copia la plantilla desde assets/template.py y reemplaza los marcadores de posición:
{{ResourceName}}→ nombre en PascalCase (por ejemplo,Project){{resource_name}}→ nombre en snake_case (por ejemplo,project)
Patrón de múltiples modelos
| Modelo | Propósito |
|---|---|
| `Base` | Campos comunes compartidos entre modelos |
| `Create` | Cuerpo de la solicitud para creación (campos obligatorios) |
| `Update` | Cuerpo de la solicitud para actualizaciones (todos opcionales) |
| `Response` | Respuesta de API con todos los campos |
| `InDB` | Documento de base de datos con `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 # Acepta tanto snake_case como camelCase
Campos opcionales de actualización
class MyUpdate(BaseModel):
"""Todos los campos son opcionales para solicitudes PATCH."""
name: Optional[str] = Field(None, min_length=1)
description: Optional[str] = None
Documento de base de datos
class MyInDB(MyResponse):
"""Añade doc_type para consultas en Cosmos DB."""
doc_type: str = "my_resource"
Pasos de integración
- Crea modelos en
src/backend/app/models/ - Exporta desde
src/backend/app/models/__init__.py - Añade los tipos correspondientes de TypeScript
---
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
Todos los archivos
0 archivosInstalar pydantic-models-py
Descarga y extrae los archivos de habilidades en tu directorio .claude/skills/.
Descargar ZIPClona el repositorio y copia los archivos de la habilidad a tu proyecto.
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
Copiar





Hogar
