在API平台上返回自定义JSON的最佳做法

时间:2018-09-27 15:49:14

标签: symfony4 api-platform.com

你好

我是Symfony 4和API平台的全新用户,我想更新现有的API(使用FOSRest创建)。

我有很多返回自定义JSON对象的路由,与我的实体不同。

例如,我有一个1,11180实体

Offer

我想返回一个基于该产品实体但带有自定义字段的JSON对象。

为该一种GET方法创建新资源真的是强制性的吗,还是有最佳实践呢?

谢谢。

1 个答案:

答案 0 :(得分:0)

有多种添加自定义数据的方法:

(最简单)添加自定义实体方法

class Offer
{
    public function getSomethingCustomized() 
    {
        return 'something_customized';
    }
}

您可能还需要使用serialization groups

装饰序列化器

如果您的自定义数据需要从实体外部提取: Here is the documentation

它会覆盖默认的Serializer服务(在发送响应之前调用),并允许您向每个请求添加额外的数据(从任意位置)。

使用事件

如果您需要更多细粒度的控制,还可以使用一个(或多个)api-platform event

我个人使用这种方法来调和(持久性)实体上的外部关系(不是教义所坚持的)。