pydantic-models-py
microsoft/skills
Crie modelos Pydantic seguindo o padrão de múltiplos modelos com as variantes Base, Create, Update, Response e InDB para contratos de API limpos em aplicações Python usando Pydantic v2.
...Expandir tudoModelos Pydantic
Crie modelos Pydantic seguindo o padrão multi-modelo para contratos de API limpos.
Início Rápido
Copie o modelo de assets/template.py e substitua os espaços reservados:
{{ResourceName}}→ nome em PascalCase (por exemplo,Project){{resource_name}}→ nome em snake_case (por exemplo,project)
Padrão Multi-modelo
| Modelo | Finalidade |
|---|---|
| `Base` | Campos comuns compartilhados entre os modelos |
| `Create` | Corpo da solicitação para criação (campos obrigatórios) |
| `Update` | Corpo da solicitação para atualizações (todos opcionais) |
| `Response` | Resposta da API com todos os campos |
| `InDB` | Documento do banco de dados com `doc_type` |
Aliases em camelCase
class MyModel(BaseModel):
workspace_id: str = Field(..., alias="workspaceId")
created_at: datetime = Field(..., alias="createdAt")
class Config:
populate_by_name = True # Aceita tanto snake_case quanto camelCase
Campos Opcionais de Atualização
class MyUpdate(BaseModel):
"""Todos os campos opcionais para solicitações PATCH."""
name: Optional[str] = Field(None, min_length=1)
description: Optional[str] = None
Documento do Banco de Dados
class MyInDB(MyResponse):
"""Adiciona doc_type para consultas no Cosmos DB."""
doc_type: str = "my_resource"
Etapas de Integração
- Crie os modelos em
src/backend/app/models/ - Exporte de
src/backend/app/models/__init__.py - Adicione os tipos TypeScript correspondentes
---
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 os arquivos
0 arquivosInstalar pydantic-models-py
Baixe e extraia os arquivos de habilidade para o diretório .claude/skills/.
Baixar ZIPClone o repositório e copie os arquivos da habilidade para o seu projeto.
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





Lar
