opción

pydantic-models-py

microsoft/skills 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 todo
8
Tiempo actualizado 12 de septiembre de 2026

Modelos 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

ModeloPropó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

  1. Crea modelos en src/backend/app/models/
  2. Exporta desde src/backend/app/models/__init__.py
  3. Añade los tipos correspondientes de TypeScript
Ver en GitHub
---
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 archivos

Instalar pydantic-models-py

Descarga y extrae los archivos de habilidades en tu directorio .claude/skills/.

Descargar ZIP

Clona 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 Copiar
Configuración rápida: Copia la carpeta de la habilidad a .claude/skills/ Claude detectará y utilizará automáticamente la habilidad
Repositorio microsoft/skills

Habilidades relacionadas

algorithmic-art
Tiempo actualizado 27 de agosto de 2026
receiving-code-review
Tiempo actualizado 3 de septiembre de 2026
tech-debt-tracker
Tiempo actualizado 29 de agosto de 2026
senior-backend
Tiempo actualizado 30 de agosto de 2026
OR