Как указать несколько типов объектов в одном свойстве, используя Swagger и / или сериализатор JMS? - PullRequest
0 голосов
/ 26 сентября 2019

Я использую сериализатор Swagger и JMS и показываю построенный OpenAPI JSON с помощью NelmioAPIDocBundle https://github.com/nelmio/NelmioApiDocBundle

У меня есть объект со свойством, которое является массивом, который может включать несколько различных типов других объектов, которые имеют своисобственные общие свойства, но одно свойство отличается для всех этих объектов.Я делаю, как вы можете видеть ниже, и OpeAPI JSON создается, но NelmioAPIDocBundle не показывает эту модель правильно, вместо этого она показывает только NULL.

Не могли бы вы объяснить, что я делаю неправильно?Есть ли способ сделать то, что мне нужно?

Заранее спасибо!

<?php

use Swagger\Annotations as SWG;
use Nelmio\ApiDocBundle\Annotation\Model;

class A
{
    /**
     * @SWG\Property(
     *     type="array",
     *     @SWG\Items(ref=@SWG\Schema(allOf={
     *                  @SWG\Schema(ref=@Model(type=TypeOne::class)),
     *                  @SWG\Schema(ref=@Model(type=TypeTwo::class)),
     *              }
     *          )
     *      )
     * )
     */
    protected $objects;
}
...