mcpField
A
api-platform-resources

api-platform-resources

github.com/dev-toolings開発22779 回インストール3 週間前に更新
リポジトリ

api-platform-resources について

API Platform のリソースと操作を定義する Symfony 開発スキルです。CRUD の選択、ページネーション、型付き OpenAPI ドキュメントを案内し、バージョン固有の設定上の注意も扱います。

主な機能

  1. 01リソース操作の明示的な一覧
  2. 02ルートと URI の設定ガイド
  3. 03ページネーション設定
  4. 04型付き OpenAPI ドキュメント
  5. 05バリデーショングループの指針

活用シーン

  1. 01エンティティを API リソースとして公開
  2. 02利用可能な CRUD 操作を制御
  3. 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 オブジェクトを使って操作をドキュメント化するとき。

デフォルトのワークフロー

  1. 必要なコンポーネントだけをインストールします。api-platform/symfony、api-platform/doctrine-orm、および必要に応じて api-platform/graphql をインストールします。Symfony 6.4 LTS では、バージョンを ~4.3.0 に固定します。
  2. operations: にすべての操作を列挙します。1つでも宣言すると自動 CRUD が無効になり、Put は常に自動では追加されません。
  3. デフォルトでは要件を満たせない場合に限り、uriTemplate、requirements、status、または routePrefix を設定します。
  4. リソース属性または config/packages/api_platform.yaml の api_platform.defaults を使ってページネーションを設定します。
  5. openapi: モデルオブジェクトを使って操作を記述し、validationContext グループを設定してから、ルートと OpenAPI エクスポートを確認します。

ガードレール

  • 操作を1つ宣言するとデフォルトの CRUD がなくなります。operations: [new Get()] を指定したリソースには、コレクション、Post、Delete がありません。
  • v4 では openapiContext 配列は非推奨です。型付きの openapi: オプションを使ってください。
  • collectionOperations と itemOperations は廃止されています。
  • paginationClientEnabled を設定すると、クライアントがページネーションを無効にできます。paginationMaximumItemsPerPage は設定したままにしてください。

段階的な情報開示

  • 実行方針とリスク管理には、このファイルを使用します。
  • 実装の詳細を確認する必要がある場合は、リファレンスを参照します。

出力要件

  • 明示的な操作リストと、それによって生成されるルートを含むリソースクラス。
  • 各上書きの理由を添えた、ページネーションと OpenAPI の設定。
  • 宣言した各操作のルート一覧とテスト結果。

参考資料

  • reference.md

コメント