About api-platform-resources
A Symfony development skill for defining API Platform resources and their operations. It guides CRUD selection, pagination, and typed OpenAPI documentation, with version-specific configuration cautions.
Key features
- 01Explicit resource operation lists
- 02Route and URI configuration guidance
- 03Pagination configuration
- 04Typed OpenAPI documentation
- 05Validation group guidance
Use cases
- 01Expose an entity as an API resource
- 02Control available CRUD operations
- 03Configure collection pagination and API docs
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill api-platform-resourcesAfter installing, type/api-platform-resourcesin Claude Code to confirm it loaded.
Bundled filesreference.md
Details
From the project READMEApi Platform Resources (Symfony)
Use when
- Exposing a new entity or class as an
#[ApiResource]. - Choosing exactly which of
Get,GetCollection,Post,Put,Patch, andDeletethe API offers. - Tuning collection pagination (items per page, partial pagination, client control).
- Documenting operations with typed OpenAPI objects instead of
openapiContextarrays.
Default workflow
- Install only the components you need:
api-platform/symfony,api-platform/doctrine-orm, and optionallyapi-platform/graphql; on Symfony 6.4 LTS, pin them to~4.3.0. - List every operation in
operations:, since declaring any one stops the automatic CRUD, andPutis never automatic. - Set
uriTemplate,requirements,status, orroutePrefixonly where the defaults do not fit. - Configure pagination through resource attributes or
api_platform.defaultsinconfig/packages/api_platform.yaml. - Describe operations with
openapi:model objects, setvalidationContextgroups, then check the routes and the OpenAPI export.
Guardrails
- Declaring one operation removes the default CRUD: an
operations: [new Get()]resource has no collection,Post, orDelete. openapiContextarrays are deprecated in v4: use the typedopenapi:option.collectionOperationsanditemOperationsno longer exist.paginationClientEnabledlets clients disable pagination: keeppaginationMaximumItemsPerPageset.
Progressive disclosure
- Use this file for execution posture and risk controls.
- Open references when deep implementation details are needed.
Output contract
- The resource class with its explicit operation list and the routes it produces.
- Pagination and OpenAPI settings, with the reason for each override.
- Route listing and test results for each declared operation.
References
reference.md
Comments
Markdown supported