Я разрабатываю REST API для нашей системы, используя Symfony2 с FosRestBundle. FosRestBundle — очень хороший инструмент, но у него есть одно ограничение: только свойства (priviate, protected и public) могут быть доступны API.
Я хотел бы предоставить производное свойство, рассчитанное на основе двух других полей (например, полное имя = firstName+lastName), а также свойство, описывающее отношения (например, название категории продукта вместо идентификатора категории продукта)
Однако аннотация @Expose может работать только со свойствами.
Я попытался создать фиктивное свойство, установить это свойство в конструкторе (работает при создании нового) и в обработчике событий postLoad жизненного цикла Doctrine (работает при загрузке из базы данных), и оно работает. Но мне не нравится такой подход, так как он создает накладные расходы и дополнительное кодирование, даже если класс Entity не используется API.
Интересно, есть ли лучший способ добиться этого.