我正在使用 JMSSerializer 和 FOSRestBundle。我有一个相当典型的对象图,包括一些递归。
我想要完成的是超出一定深度的包含对象或通常仅列出其 ID,但当直接序列化时,会列出所有数据。
因此,例如:用户 => 组 => 用户
请求 /user/1 时,结果应该类似于
{ "id": 1, "name": "John Doe", "groups": [ { "id": 10 }, { "id": 11 } ] }
当我请求 /group/10 时,它将是:
{ "id": 10, "name": "Groupies", "users": [ { "id": 1 }, { "id": 2 }, { "id": 4 } ] }
使用@MaxDeph 我可以完全隐藏包含的数组,所以我得到 { "id": 1, "name": "John Doe", "groups": [] }
但是我想只包含 ID,以便 REST 客户端可以在需要它们时获取它们,或者查阅他的缓存,或者做任何事情。
我知道我可以使用组手动将其拼凑在一起,但出于一致性原因,我想知道是否可以在整个应用程序中以某种方式启用此行为,甚至可能使用对 maxdepth 的引用,这样我就可以控制在哪里包含 ID 以及在哪里包含完整的对象?