Документация Swagger — Как я могу получить только значения, разделенные запятой в теле запроса json?

#annotations #swagger #swagger-php

#аннотации #развязность #swagger-php #swagger

Вопрос:

В моем случае для операции УДАЛЕНИЯ мне придется передать тело, которое выглядит следующим образом.

Тело запроса должно выглядеть следующим образом:

 [
 "Vi####1",
 "Vi####2"
]
  

Но когда я пытался добиться этого, я всегда получал тип данных вместе со значением, как показано ниже.

Тело запроса, которое создается в данный момент:

 {
 "Vi####1": "string",
 "Vi####2": "string"
}
  

пожалуйста, ознакомьтесь ниже с созданием json.

 class VirtualViewColDeleteReq
{

/**
 * @OAProperty(
 *     title="View ID",
 *     description="Segment Name",
 *     property="Vi####001"
 * )
 *
 * @var string
 */

/**
 * @OAProperty(
 *     title="View ID1",
 *     description="Segment Name",
 *     property="Vi####002"
 * )
 *
 * @var string
 */

}
  

swagger.php

  *     @OARequestBody(
 *          required=true,
 *          @OAJsonContent(ref="#/components/schemas/VirtualViewColDeleteReq")
 *      ),
  

Любая помощь действительно ценится.

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

Ответ №1:

Ваша текущая настройка описывает объект, но похоже, что вам нужен простой массив со строками

  *     @OARequestBody(
 *       required=true,
 *       @OAJsonContent(
 *         type="array", 
 *         @OAItems(type="string"),
 *       )
 *     )
  

Для дополнительной ясности вы можете предоставить формат @OAItems(type="string", format="id"), это игнорируется инструментарием, но дает подсказку для читателя документации.

Комментарии:

1. Эй, Боб, это помогло мне. Спасибо за решение 🙂