Как я могу аннотировать мой атрибут, который является Value Object, чтобы API Platform генерировала свои поля для документированной документации? - PullRequest
0 голосов
/ 23 мая 2019

У меня есть сущность с именем Station.

У этого объекта есть свойство с именем attributes, которое является StationAttributes значением объекта.

Я пытаюсь установить для свойства StationAttributes:

/**
* @var StationAttributes
* @ORM\Column(name="attributes", type="station_attributes", nullable=true)
*/
private $attributes;

Однако платформа API генерирует модель Station, которая выглядит следующим образом:

{
...
"attributes": "string"
}

Я хочу, чтобы это было так:

{
...
"attributes": {
    "field": true,
    "field2": "value2",
  }
}

Как мне этого добиться?

1 Ответ

0 голосов
/ 24 мая 2019

Я зарегистрировал StationAttributes как ApiResource / Model, а затем добавил контекст сваггера в свойство атрибутов.

/**
 * @var StationAttributes
 *
 * @ApiProperty(
 *     attributes={
 *         "swagger_context"={
 *              "$ref"="#/definitions/StationAttributes"
 *          }
 *     }
 * )
 *
 * @ORM\Column(name="attributes", type="station_attributes", nullable=true)
 */
private $attributes;
...