Я создаю класс модели ApiResource MyCustomModel (не Doctrine Entity), у которого есть объявление вывода.
/**
* @ApiResource(
* itemOperations={},
* collectionOperations={"post"={}},
* output=SomeOutput::class
* )
*/
Поскольку я хочу выполнить пользовательскую операцию над ним (часть данных, сохраненных в БД через doctrine сущность и часть, отправленные в очередь) Я создал и зарегистрировал MyCustomPersister для обработки этого. Внутри этого персистента я выполняю операции и в конце возвращаю созданную doctrine сущность SomeEntity (потому что я хочу иметь доступ к этой сущности при построении вывода - я хочу вернуть ее идентификатор и статус), а НЕ $ data, которая была Первоначально передано для сохранения.
Я создал класс SomeOutput и создал классы SomeOutputDataTransformer, предполагая, что они будут использоваться для создания выходных данных для запроса, и что возвращаемое мной SomeEntity из MyCustomPersister будет передано туда, но они не используются, Transformer не используется вообще. Структура SomeOutput отображается в SwaggerUI как ответ на этот запрос, но в результате запроса возвращается весь SomeEntity, который я возвращаю в MyCustomPersister.
Чего мне не хватает? Где я ошибся? Есть ли лучшая концепция для этого?
Чего я хочу добиться, так это иметь не сущность ApiResource, часть которой будет сохранена как сущность в БД, а часть отправлена в очередь, и в конце концов я хотите вернуть пользователю 3 из 5 полей этого вновь созданного объекта.