laravel-api-resources-and-pagination について
Laravel 開発者向けに、API Resource によるモデル表現とページネーションの扱い方を示すスキルです。クライアント向けのページネーション情報を保ち、リソース契約の変更を管理します。
主な機能
- 01Resource コレクションでモデルを返却
- 02条件付きフィールドの追加
- 03ページネーションリンクとカーソルの維持
- 04リソース契約のバージョン管理
活用シーン
- 01ページネーション付き API 応答の作成
- 02条件に応じたフィールド返却
- 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()を使用してください - クライアント向けのページネーションカーソル/リンクはそのまま維持してください
- 契約を変更する場合はリソースをバージョン管理し、フィールドを予告なく破壊的に変更しないでください
コメント
Markdown 対応