api-platform-resources について
API Platform のリソースと操作を定義する Symfony 開発スキルです。CRUD の選択、ページネーション、型付き OpenAPI ドキュメントを案内し、バージョン固有の設定上の注意も扱います。
主な機能
- 01リソース操作の明示的な一覧
- 02ルートと URI の設定ガイド
- 03ページネーション設定
- 04型付き OpenAPI ドキュメント
- 05バリデーショングループの指針
活用シーン
- 01エンティティを API リソースとして公開
- 02利用可能な CRUD 操作を制御
- 03コレクションのページネーションと API ドキュメントを設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill api-platform-resourcesインストール後、Claude Code で/api-platform-resourcesを入力して読み込まれたか確認します。
同梱ファイルreference.md
詳細
Api Platform Resources (Symfony)
使用する場面
- 新しいエンティティまたはクラスを
#[ApiResource]として公開するとき。 - API が提供する
Get、GetCollection、Post、Put、Patch、Deleteを明確に選択するとき。 - コレクションのページネーション(1ページあたりの項目数、部分ページネーション、クライアントによる制御)を調整するとき。
openapiContext配列ではなく、型付きの OpenAPI オブジェクトを使って操作をドキュメント化するとき。
デフォルトのワークフロー
- 必要なコンポーネントだけをインストールします。
api-platform/symfony、api-platform/doctrine-orm、および必要に応じてapi-platform/graphqlをインストールします。Symfony 6.4 LTS では、バージョンを~4.3.0に固定します。 operations:にすべての操作を列挙します。1つでも宣言すると自動 CRUD が無効になり、Putは常に自動では追加されません。- デフォルトでは要件を満たせない場合に限り、
uriTemplate、requirements、status、またはroutePrefixを設定します。 - リソース属性または
config/packages/api_platform.yamlのapi_platform.defaultsを使ってページネーションを設定します。 openapi:モデルオブジェクトを使って操作を記述し、validationContextグループを設定してから、ルートと OpenAPI エクスポートを確認します。
ガードレール
- 操作を1つ宣言するとデフォルトの CRUD がなくなります。
operations: [new Get()]を指定したリソースには、コレクション、Post、Deleteがありません。 - v4 では
openapiContext配列は非推奨です。型付きのopenapi:オプションを使ってください。 collectionOperationsとitemOperationsは廃止されています。paginationClientEnabledを設定すると、クライアントがページネーションを無効にできます。paginationMaximumItemsPerPageは設定したままにしてください。
段階的な情報開示
- 実行方針とリスク管理には、このファイルを使用します。
- 実装の詳細を確認する必要がある場合は、リファレンスを参照します。
出力要件
- 明示的な操作リストと、それによって生成されるルートを含むリソースクラス。
- 各上書きの理由を添えた、ページネーションと OpenAPI の設定。
- 宣言した各操作のルート一覧とテスト結果。
参考資料
reference.md
コメント
Markdown 対応