rest - API 平台:仅将实体公开为子资源
问题描述
问题是关于 PHP 8.0 / symfony 5.3 / API-Platform 2.6 项目。
- 2 个实体,用户和游戏。
- 用户拥有游戏。
- 资源和子资源配置良好,因为下面的 2 个示例已经在工作。
我试图实现的是将 Game 限制为仅作为用户的 subresource 公开,如下所示:
https://whatever.com/users/{id}/games/{id}
对于游戏,不再有通用端点,如下所示:
https://whatever.com/games/{id}
您知道如何执行此限制吗?
解决方案
这仅适用于 API 平台版本 2.7+,目前正在开发中(但可用,安装主分支)。在这个版本中,“子资源”消失了,但是引入了新的 PHP 属性,允许使用任意 URL。这基本上替换了子资源并为它们添加了写入支持(POST、PUT、PATCH、DELETE)。