Symfony 5.4, как правильно реализуется выдача Entity в JSON API?
Всем здравия!
Как правильно отформатировать и отфильтровать данные сущности в JSON API?
Есть "магический" способ JsonSerializable::jsonSerialize(), но он представляется мне не совсем элегантным, потому что
а) в Entity появляется логика, которая выходит за рамки get/set/create.
б) такое вмешательство в Entity может оказаться сюрпризом для других сервисов, которым понадобится JSON.
В Symfony есть Serializer и Normalizer, может быть, для этих целей используются они? Только по документации пока не совсем понятно, как их кастомизировать, и, главное - как приспособить свой процессор для каждой сущности?
return [
'name' => $entity->getName();
// и так всё что нужно в json отдать.
];
Вы можете конечно попробовать через Symfony Serializer и Normalizer, но там есть подводные камни, оно через одно место работает, если нужно вложенные сущность в JSON превращать.