Каким образом и в каком формате проект будет рендерить ответы в виде json
Если бы у нас был чистый api, туда можно было бы прикрутить сваггер и генерить viewModel’ы. Но мы делаем классический проект, с рендером html на сервере и многостраничным фронтом. при этом как-то унифицировать ответы функций и удобно их описывать хочется.
В идеале способом похожим на тот, что мы делаем для html-ответов. Т.е. какая-то диреткория с шаблонами объектов, и renderer который бы заполнял эти шаблоны из данных переданных контроллером. Правда это будет похоже на superjob’овский мапер, а он слишком сложен для с десятка ajax-методов, разбросанных по проекту.
Вариант 2, слой ViewModel, в котором будут dto, и слой трансформеров эти dto заполняющие и серализующие. ViewModel мне по нраву, но их у нас нигде больше нет, и может это рановато.
Вариант 2.5, трансформер получающий на входе массив и просто совершающий сериализацию и возврат JsonResponse аналогично twig->render. А ViewModel мы отдельной задачей будем делать для всего, данных передаваемых в шаблоны и данных передаваемых этому трансформеру.
Сейчас ViewModel используются для сборки объектов с данными для твига. А ViewTransformer большей частью для сборки json. Хотя ViewTransofmer/Table созданы для сборки ViewModel