我正在尝试在我的 symfony 项目中实现一些 api。目前该项目有许多带有标准 crud 的控制器,基于 html 表、表单/验证器等。
我正在寻找 api-platform 项目,该项目可以使标准 rest api 的构建变得非常容易,并且对于 GET 部分,它适合我的必需品。但是对于 POST/PUT/DELETE 部分,它在实体上缝合了一个非常基本的持久化操作,突然在我的项目中,我需要在实体持久化之后执行更多操作。
我已经把文档变红了,我真的很困惑如何做到这一点......我看到了两种可能性:
使用事件系统,为每个实体订阅 POST_WRITE
为实体的每个创建/更新/删除操作创建自定义操作
在这两种情况下,我都会在项目中拥有大量的单个操作或事件订阅者(30/40),而且维护起来真的很不舒服。此外,我可能必须复制控制器中已有的相同代码,以维护旧的表单系统,直到全部以 API 格式重新编写。
关于如何解决这个问题的任何建议?
没有办法使用相同的控制器操作,比如在 FOSRestBundle 中,这样我就可以接收数据,执行各种验证/持久化/额外操作,然后返回由 api-platform 事件管理的结果?
有什么方法可以手动调用 api 平台的某些部分,例如反序列化/序列化、来自标准控制器操作的过滤器和分页?
感谢所有欢呼丹尼尔