Swagger OpenAPI использует объект со схемой вместо массива - PullRequest
0 голосов
/ 29 января 2019

Я использую 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"
 }

1 Ответ

0 голосов
/ 30 января 2019

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

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

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

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

...