关于 pydantic-models-py
用于将 Pydantic 模型组织为清晰的 API 契约,分别定义共享字段、创建、更新、响应和数据库记录模型。还涵盖 camelCase 别名,以及在项目后端和 TypeScript 类型中的集成。
主要功能
- 01拆分 Base、Create、Update、Response 和 InDB 模型
- 02配置 camelCase 字段别名
- 03将更新请求字段设为可选
- 04为数据库模型添加 doc_type
- 05集成模型与 TypeScript 类型
适用场景
- 01定义 API 请求和响应契约模型
- 02构建字段可选的 PATCH 请求模型
- 03使用 doc_type 表示数据库文档
- 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"
集成步骤
- 在
src/backend/app/models/中创建模型 - 从
src/backend/app/models/__init__.py中导出 - 添加对应的 TypeScript 类型
何时使用
此技能适用于执行概述中描述的工作流或操作。
限制
- 仅当任务与上述范围明确匹配时才使用此技能。
- 不要将输出视为针对特定环境的验证、测试或专家评审的替代品。
- 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清。
评论
支持 Markdown