关于 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 资源(Symfony)
适用场景
- 将新的实体或类公开为
#[ApiResource]。 - 精确选择 API 提供的操作:
Get、GetCollection、Post、Put、Patch和Delete。 - 调整集合分页(每页项目数、部分分页、客户端控制)。
- 使用带类型的 OpenAPI 对象记录操作,而不是使用
openapiContext数组。
默认工作流
- 仅安装所需组件:
api-platform/symfony、api-platform/doctrine-orm,以及可选的api-platform/graphql;在 Symfony 6.4 LTS 上,将版本固定为~4.3.0。 - 在
operations:中列出每个操作,因为声明任何一个操作都会停止自动 CRUD,且Put从不自动添加。 - 仅在默认值不适用时设置
uriTemplate、requirements、status或routePrefix。 - 通过资源属性或
config/packages/api_platform.yaml中的api_platform.defaults配置分页。 - 使用
openapi:模型对象描述操作,设置validationContext分组,然后检查路由和 OpenAPI 导出。
防护措施
- 声明一个操作就会移除默认 CRUD:包含
operations: [new Get()]的资源没有集合、Post或Delete。 - v4 中的
openapiContext数组已弃用:请使用带类型的openapi:选项。 collectionOperations和itemOperations已不存在。paginationClientEnabled允许客户端停用分页:请保留paginationMaximumItemsPerPage设置。
渐进式披露
- 使用此文件了解执行方式和风险控制。
- 需要深入的实现细节时,请打开参考资料。
输出约定
- 资源类及其显式操作列表和生成的路由。
- 分页和 OpenAPI 设置,以及每项覆盖设置的原因。
- 每个已声明操作的路由列表和测试结果。
参考资料
reference.md
评论
支持 Markdown