Я использую Symfony2 и JMSSerializerBundle для создания API. Система, которую JMSSerializer предоставляет для установки различных способов сериализации объектов с использованием групп, весьма полезна, однако мне не хватает способа указать, какую группу вы хотите сериализовать в каждом параметре. Пример:
У меня есть статья, связанная с пользователем (автором). Статьи, а также пользователи могут быть сериализованы как «список» или «подробности», однако я хочу, чтобы пользователи были последовательно сериализованы как «список», так что они извлекаются из статьи (поскольку группа «подробности» зарезервирована для использования для извлечения пользователя и только пользователя). Проблема заключается в том, что если я установил сериализатор как «детали», то автор также сериализуется как «детали».
На мой взгляд, код должен выглядеть примерно так:
/** * @var SCA\APIBundle\Entity\User * @Groups({"list" => "list", "details" => "list"}) */ private $author;
где ключ массива указывает, как родитель должен быть сериализован, а значение указывает способ, которым должен быть сериализован ребенок.
Какую-нибудь подсказку, как я могу это достичь?