Как установить Nelmio Doc с помощью собственного обработчика сериализатора JMS - PullRequest
0 голосов
/ 24 сентября 2019

В сгенерированном NelmioApiBundle мои отношения отображаются как {} вместо 0.

Я использую пользовательский JMS-обработчик для отношений с объектами.(RelationHandler)

На моих отношениях я указываю специальный класс в качестве типа в данной модели (ChildRelation).Затем обработчик управляет преобразованием из Object в ID.Это прекрасно работает для JMS Serializer, но не для соответствующего документа Nelmio API Doc

Я пытался связываться с @SWG \ Schema непосредственно в ChildRelation, но это не сработало

В этом примере роль техническиобъект UserRole, который наследуется от Concrete.

## serializer/Model.DataObject.User.yml
AppBundle\Model\DataObject\User:
    access_type: public_method
    properties:
        capabilities:
            groups: [detailed, data]
            type: array<string>
        role:
            groups: [detailed, list, data, create, update]
            type: AppBundle\Model\DataObject\ChildRelation
// RelationHandler Serializer:
final class RelationsHandler implements SubscribingHandlerInterface
{
 (...)
public function serializeConcreteToId(JsonSerializationVisitor $visitor, Concrete $concrete, array $type, SerializationContext $context
    ) {
        return $concrete->getId();
    }
}

Я ожидаю получить ту же модель, что и при вызове конечной точки.

{
  "role": 271,
  "capabilities": []
}

Но в swagger выглядит ответкак это:

{
  "capabilities": [],
  "role": {}
}

Есть хороший способ сделать это?

...