我正在使用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以及在哪里包括完整的对象?
答案 0 :(得分:0)
为了那些发现这个的人:
我没有找到其他解决方案,但是使用群组这样做可以很好地为我提供我想要的结果。