Я использую 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, чтобы я мог контролировать, где включать идентификаторы и где включать полные объекты?