mcpField
P
pydantic-models-py

pydantic-models-py

github.com/sickn33开发48.7k138 次安装今天更新
代码仓库

关于 pydantic-models-py

用于将 Pydantic 模型组织为清晰的 API 契约,分别定义共享字段、创建、更新、响应和数据库记录模型。还涵盖 camelCase 别名,以及在项目后端和 TypeScript 类型中的集成。

主要功能

  1. 01拆分 Base、Create、Update、Response 和 InDB 模型
  2. 02配置 camelCase 字段别名
  3. 03将更新请求字段设为可选
  4. 04为数据库模型添加 doc_type
  5. 05集成模型与 TypeScript 类型

适用场景

  1. 01定义 API 请求和响应契约模型
  2. 02构建字段可选的 PATCH 请求模型
  3. 03使用 doc_type 表示数据库文档
  4. 04保持后端模型与 TypeScript 类型一致

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill pydantic-models-py

安装后在 Claude Code 中输入/pydantic-models-py确认已加载。

详细介绍

Pydantic 模型

按照多模型模式创建 Pydantic 模型,以获得清晰的 API 契约。

快速开始

使用下面的内联模型模式,并根据实际的 API 契约调整类名和字段。在选择配置语法之前,先检查已安装的 Pydantic 版本;这些片段需要你的项目所展示的导入和应用类型。不要假定已捆绑了独立的模板文件。

多模型模式

模型用途
Base各模型共享的通用字段
Create用于创建的请求体(必填字段)
Update用于更新的请求体(全部可选)
Response包含所有字段的 API 响应
InDB包含 doc_type 的数据库文档

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

可选的更新字段

class MyUpdate(BaseModel):
    """All fields optional for PATCH requests."""
    name: Optional[str] = Field(None, min_length=1)
    description: Optional[str] = None

数据库文档

class MyInDB(MyResponse):
    """Adds doc_type for Cosmos DB queries."""
    doc_type: str = "my_resource"

集成步骤

  1. 在 src/backend/app/models/ 中创建模型
  2. 从 src/backend/app/models/__init__.py 中导出
  3. 添加对应的 TypeScript 类型

何时使用

此技能适用于执行概述中描述的工作流或操作。

限制

  • 仅当任务与上述范围明确匹配时才使用此技能。
  • 不要将输出视为针对特定环境的验证、测试或专家评审的替代品。
  • 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown