Apigility+Doctrine:自定义响应

Apigility+Doctrine: custom response

我有一个关于 Apigility + Doctrine 的项目 运行。从头开始(自动无需编写额外代码),我可以通过分页、过滤等方式检索实体和集合。

这在检索数据库行时非常完美,但是,大多数服务需要 return 更多数据。例如:一个 to-do 列表,其中 "tasks" 有 parents,如果你想像树一样检索它,你必须先处理它。很多时候我需要标志来告诉前端如何处理数据或键来显示或隐藏东西。有时检索数据库中未表示为 FK 或 PK 等的额外信息很有用

到目前为止,使用 Apigilty+Doctrine,如果我想向输出添加任何信息,我必须修改实体,设置正确的键,并且它可以工作。但是,从前面的示例中您可以看到我需要的数据不是来自数据库,或者我不能简单地将关系表示为数据库依赖关系。

问题:

  1. 正确的做法是什么?
  2. 是否有关于此问题的文档?
  3. 如何自定义我的输出以保持正确的 HAL 结构?

默认情况下,Entity 值将按原样作为响应给出。如果要修改值(例如:检索父数据、检索子数据或修改数据格式),则应为此 Entity 创建一个 Hydrator,并为此自定义 Hydrator Strategy Entity 值。

这是来自我的 ApigilityDoctrine 项目

Hydrator 示例

https://github.com/aqilix/zf3-apigilty-oauth2/blob/1.0.1/module/User/src/V1/Hydrator/UserProfileHydratorFactory.php