我正在使用 Symfony2 和 FosRestBundle 为我们的系统开发一个 REST API。FosRestBundle 是一个非常好的工具,但它似乎有一个限制:只有属性(private、protected 和 public)可以暴露给 API。
我想公开一个基于其他两个字段(例如全名 = firstName+lastName)计算的派生属性以及描述关系的属性(例如产品的类别名称而不是产品的类别 ID)
但是 @Expose 注释只能对属性起作用。
我尝试创建一个虚拟属性,在构造函数中设置该属性(在创建新属性时工作)和 Doctrine 生命周期 postLoad 事件处理程序(在从数据库加载时工作)并且它正在工作。但我不喜欢这种方法,因为即使 API 不使用 Entity 类,它也会产生开销和额外的编码。
我想知道是否有更好的方法来实现这一点。