mcpField
P
pydantic-models-py

pydantic-models-py

github.com/sickn33開発48.7k138 回インストール今日更新
リポジトリ

pydantic-models-py について

Pydantic モデルを API 契約として整理し、共通、作成、更新、レスポンス、データベース記録のモデルを分けるスキルです。camelCase エイリアスや、バックエンドおよび TypeScript 型への組み込みも扱います。

主な機能

  1. 01Base・Create・Update・Response・InDB のモデル分割
  2. 02camelCase フィールドエイリアスの設定
  3. 03更新リクエスト項目の任意化
  4. 04データベースモデルへの doc_type 追加
  5. 05モデルと TypeScript 型の組み込み

活用シーン

  1. 01API リクエストとレスポンス契約の定義
  2. 02項目が任意の PATCH モデルの作成
  3. 03doc_type を持つデータベース文書の表現
  4. 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 レスポンス
InDBdoc_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 の型を追加します

使用する場合

このスキルは、概要に記載されたワークフローを実行する場合に適用できます。

制限事項

  • このスキルは、タスクが上記のスコープに明確に一致する場合にのみ使用してください。
  • 出力を、環境固有の検証、テスト、専門家によるレビューの代替として扱わないでください。
  • 必要な入力、権限、安全境界、成功基準が欠けている場合は、停止して確認を求めてください。

コメント