Серийные объекты, отображающие только идентификатор

Я использую JMSSerializer и FOSRestBundle. У меня есть довольно типичный граф объектов, включая некоторую рекурсию.

Чего я хотел бы добиться, так это того, чтобы включенные объекты за пределами определенной глубины или вообще перечислялись только с их идентификатором, но при прямой сериализации со всеми данными.

Так, например: Пользователи => Группы => Пользователи

при запросе /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": [] }

Но я хотел бы включить только идентификаторы, чтобы клиент REST мог получить их, если они ему нужны, или обратиться к своему кешу, или сделать что-то еще.

Я знаю, что могу вручную собрать это вместе, используя группы, но из соображений согласованности мне было интересно, могу ли я каким-то образом включить это поведение во всем своем приложении, может быть, даже со ссылкой на maxdepth, чтобы я мог контролировать, где включать идентификаторы и где включать полные объекты?


person Tom    schedule 21.05.2015    source источник


Ответы (1)


Ради тех, кто найдет это:

Я не нашел другого решения, но работа с группами работает отлично и дает мне результат, который я искал.

person Tom    schedule 23.06.2015