Как я могу сделать параметр необязательным в некоторых, но обязательным в других случаях в Swagger / PHP?

Я документирую PHP REST-API с помощью Swagger. Итак, я определил свою модель данных. Моя текущая проблема заключается в том, что требуемое состояние некоторых полей зависит от типа запроса. Моя модель выглядит так:

 * @SWG\Definition(required={"firstName", "lastName"})
*
* @SWG\Property(property="id", type="integer", example="5")
* @property integer $id
*
* @SWG\Property(property="firstName", type="string", example="Test Name")
* @property string $firstName
*
* @SWG\Property(property="lastName", type="string", example="Test Name")
* @property string $lastName
*
* @SWG\Property(property="created", type="string", example="2016-11-15 08:05:15")
* @property string $created
  • При запросе поста firstName и lastName требуются, а идентификатор и создаваемый объект присваиваются API.
  • Для запроса на поставку идентификатор является обязательным, но в URL-пути и firstName и lastName не являются обязательными, а созданный не может быть изменен.
  • При получении запроса все поля возвращаются.

Что за желание:

  • Показать все поля для получения запросов.
  • Показывать идентификатор как обязательный и показывать имя и фамилию как необязательные при запросах пут, но не показывать созданный.
  • Показывать имя и фамилию, как требуется, по запросу, но не показывать идентификатор и созданный.

Я знаю, что могу пометить поля как обязательные с помощью required = true, но это помечает их как обязательные везде, где используется модель. Единственное, что я выяснил, это обязательный идентификатор в запросе put, так как он сам по себе является параметром.

 *     @SWG\Parameter(
*          name="id",
*          in="path",
*          required=true,
*          type="integer"*      )

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]