Agent Skills
返回列表
💻

Pydantic 多模型 API 契约

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/pydantic-models-py。

技能介绍

要解决什么问题

REST 或 RPC 接口里,创建、更新、响应和落库字段往往不一致:创建时不能带 id,更新要全可选,响应对外字段和 Mongo/文档库里的 doc_type 结构也不该混在一个 Model 里。手写几套类容易漏字段、Optional 写错,前后端类型也对不齐。

技能如何工作

本技能约定 多模型模式,用 assets/template.py 复制模板后替换占位符:

  • {{ResourceName}} → PascalCase(如 Project)
  • {{resource_name}} → snake_case(如 project)

各模型分工如下:

| 模型 | 用途 |
|------|------|
| Base | 共享公共字段 |
| Create | 创建请求体(必填字段) |
| Update | 更新请求体(全部可选) |
| Response | 完整 API 响应 |
| InDB | 带 doc_type 的数据库文档 |

文档中还覆盖 camelCase 别名、可选更新字段等常见约定。集成路径固定为三步:在 src/backend/app/models/ 建模型 → 从 src/backend/app/models/__init__.py 导出 → 补对应 TypeScript 类型。非核心能力与生产检查清单见 references/capabilities.md。

适用边界

这是 Pydantic 模型结构与命名 的脚手架指引,不包含路由、鉴权或 ORM 迁移。若项目已有自己的 DTO 分层规范,需对照是否与本技能的 Base/Create/Update 划分一致再套用模板。

使用场景

  • 为新业务实体(如 Project)从 template.py 生成 Base/Create/Update/Response/InDB 五类模型并替换占位符
  • 接口评审发现创建与更新共用一个 Model,需按技能约定拆成 Create 必填与 Update 全可选
  • 在 src/backend/app/models/ 新增资源模型后,同步补全前端 TypeScript 类型以保持字段一致
  • 文档库文档带 doc_type,需要单独 InDB 模型与对外 Response 字段分离时对照模板实现

适合人员

  • 维护 FastAPI/Starlette 类项目、每次上新资源都要在 models 目录补 Pydantic 类的后端工程师
  • 全栈开发者在 monorepo 里同时改 Python 模型与 TS 类型、希望 Create/Update 语义一致的同学
  • 负责 API 契约评审、要检查响应体是否混入了仅数据库使用的字段的技术负责人
  • 从智雨科技模板栈接入项目、需要按 references/capabilities.md 做生产环境检查的新成员