pydantic-models-py について
Pydantic モデルを API 契約として整理し、共通、作成、更新、レスポンス、データベース記録のモデルを分けるスキルです。camelCase エイリアスや、バックエンドおよび TypeScript 型への組み込みも扱います。
主な機能
- 01Base・Create・Update・Response・InDB のモデル分割
- 02camelCase フィールドエイリアスの設定
- 03更新リクエスト項目の任意化
- 04データベースモデルへの doc_type 追加
- 05モデルと TypeScript 型の組み込み
活用シーン
- 01API リクエストとレスポンス契約の定義
- 02項目が任意の PATCH モデルの作成
- 03doc_type を持つデータベース文書の表現
- 04バックエンドモデルと TypeScript 型の整合
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill pydantic-models-pyインストール後、Claude Code で/pydantic-models-pyを入力して読み込まれたか確認します。
詳細
Pydantic モデル
クリーンな API コントラクトのために、マルチモデルパターンに従って Pydantic モデルを作成します。
クイックスタート
以下のインラインモデルパターンを使用し、クラス名とフィールドを実際の 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 対応