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 资源(Symfony)

适用场景

  • 将新的实体或类公开为 #[ApiResource]。
  • 精确选择 API 提供的操作:Get、GetCollection、Post、Put、Patch 和 Delete。
  • 调整集合分页(每页项目数、部分分页、客户端控制)。
  • 使用带类型的 OpenAPI 对象记录操作,而不是使用 openapiContext 数组。

默认工作流

  1. 仅安装所需组件:api-platform/symfony、api-platform/doctrine-orm,以及可选的 api-platform/graphql;在 Symfony 6.4 LTS 上,将版本固定为 ~4.3.0。
  2. 在 operations: 中列出每个操作,因为声明任何一个操作都会停止自动 CRUD,且 Put 从不自动添加。
  3. 仅在默认值不适用时设置 uriTemplate、requirements、status 或 routePrefix。
  4. 通过资源属性或 config/packages/api_platform.yaml 中的 api_platform.defaults 配置分页。
  5. 使用 openapi: 模型对象描述操作,设置 validationContext 分组,然后检查路由和 OpenAPI 导出。

防护措施

  • 声明一个操作就会移除默认 CRUD:包含 operations: [new Get()] 的资源没有集合、Post 或 Delete。
  • v4 中的 openapiContext 数组已弃用:请使用带类型的 openapi: 选项。
  • collectionOperations 和 itemOperations 已不存在。
  • paginationClientEnabled 允许客户端停用分页:请保留 paginationMaximumItemsPerPage 设置。

渐进式披露

  • 使用此文件了解执行方式和风险控制。
  • 需要深入的实现细节时,请打开参考资料。

输出约定

  • 资源类及其显式操作列表和生成的路由。
  • 分页和 OpenAPI 设置,以及每项覆盖设置的原因。
  • 每个已声明操作的路由列表和测试结果。

参考资料

  • reference.md

评论

支持 Markdown