Swagger OpenAPI использует объект со схемой вместо массива

Я использую L5 Swagger из DarkOnLine для создания документов Swagger с использованием схем OpenApi.

Чтобы использовать схему, я могу сделать

@OA\Property(property="certification", type="array", @OA\Items(ref="#/components/schemas/Certification"))

и он отлично работает и отображается как

"certification": [
    {
      "certification_id": 0,
      "name": "string"
    }
  ],

. Но он создает блок массива с квадратными скобками с несколькими объектами внутри него.

Как мне использовать ту же работу, но потерять массив. Что-то типа

@OA\Property(property="certification", type="object", @OA\Items(ref="#/components/schemas/Certification")),

чтобы убрать квадратные скобки и показать только объект вроде.

"certification": {
      "certification_id": 0,
      "name": "string"
 }

person abhig10    schedule 29.01.2019    source источник


Ответы (1)


Ты можешь сделать:

@OA\Property(
  property="certification", 
  ref="#/components/schemas/Certification"
)

Аннотация @OA\Items используется только тогда, когда вы хотите указать свойства внутри массива (см. Типы данных: массив).

В вашем случае вы просто хотите описать объект, поэтому вам просто нужно сослаться на схему объекта в свойстве и удалить @OA\Items.

person Nico    schedule 30.01.2019