mcpField
L
laravel-api-resources-and-pagination

laravel-api-resources-and-pagination

github.com/noartem開発1377 回インストール3 週間前に更新
リポジトリ

laravel-api-resources-and-pagination について

Laravel 開発者向けに、API Resource によるモデル表現とページネーションの扱い方を示すスキルです。クライアント向けのページネーション情報を保ち、リソース契約の変更を管理します。

主な機能

  1. 01Resource コレクションでモデルを返却
  2. 02条件付きフィールドの追加
  3. 03ページネーションリンクとカーソルの維持
  4. 04リソース契約のバージョン管理

活用シーン

  1. 01ページネーション付き API 応答の作成
  2. 02条件に応じたフィールド返却
  3. 03API リソース契約の変更

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/noartem/skills --skill laravel-api-resources-and-pagination

インストール後、Claude Code で/laravel-api-resources-and-paginationを入力して読み込まれたか確認します。

詳細

API リソースとページネーション

モデルはリソースで表現し、トランスポートに関する処理は Eloquent から切り離します。

コマンド

# Resource
php artisan make:resource PostResource    # or: php artisan make:resource PostResource

# Controller usage
return PostResource::collection(
    Post::with('author')->latest()->paginate(20)
);

# Resource class
public function toArray($request)
{
    return [
        'id' => $this->id,
        'title' => $this->title,
        'author' => new UserResource($this->whenLoaded('author')),
        'published_at' => optional($this->published_at)->toAtomString(),
    ];
}

パターン

  • 手動で配列を作成する代わりに、Resource::collection($query->paginate()) を優先してください
  • 条件付きフィールドには when() / mergeWhen() を使用してください
  • クライアント向けのページネーションカーソル/リンクはそのまま維持してください
  • 契約を変更する場合はリソースをバージョン管理し、フィールドを予告なく破壊的に変更しないでください

コメント