Как мне отформатировать OpenApi в swagger-php, чтобы swagger-ui отображал форму вместо массива?

Я использую сборку Laravel и обновляю обозначения для всех своих методов контроллера API с @SWG до @OA. Когда я нажимаю «попробовать» в swagger-ui метода create, я могу заставить его показать (и принять) редактируемый массив параметров и значений (последние являются примерами, которые я закодировал), но Я бы предпочел вместо этого получить форму заданных параметров, которая будет отправлена ​​в теле, а не в запросе. Мне удалось сделать это в более старой версии, добавив параметры и установив для параметра «in» значение «body», но в документации говорится, что я должен использовать requestBody сейчас. Результатом не очень доволен ... функционально, но не оптимально.

Вот пример requestBody, который я использую сейчас:

/**
 *
 * @OA\RequestBody(
 *     request="Answer",
 *     description="Answer object that needs to be added.",
 *     required=true,
 *     @OA\JsonContent(ref="#/components/schemas/Answer")
 * )
 */

Я подозреваю, что мне нужно что-то сделать с @mediaType, но когда я пробую его со списком параметров, он мне ничего не дает 8 (

Что мне не хватает?


person WoodyNaDobhar    schedule 25.05.2021    source источник


Ответы (1)


Я объединял requestBody с ответом ... думал, что мне нужно отправить json, чтобы вернуть json. Нет, лол Просто нужно было отправить его с mediaType формы.

Вот что у меня получилось, если это кому-то поможет:

/**
 *
 *  @OA\RequestBody(
 *      request="Answer",
 *      description="Answer object that needs to be added.",
 *      required=true,
 *      @OA\MediaType(
 *          mediaType="multipart/form-data",
 *          @OA\Schema(ref="#/components/schemas/Answer")
 *      )
 *  )
 */
person WoodyNaDobhar    schedule 25.05.2021