Swagger を使用して PHP REST-API を文書化しています。そこで、データモデルを定義しました。私の現在の問題は、いくつかのフィールドの必須状態がリクエストの種類によって異なることです。私のモデルは次のようになります。
* @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 が必要であり、id と created は API によって割り当てられます。
- put リクエストには id が必要ですが、url パスでは firstName と lastName はオプションですが、created は変更できません。
- get リクエストでは、すべてのフィールドが返されます。
欲しいものは:
- get リクエストのすべてのフィールドを表示します。
- put リクエストで id を必須として表示し、名と姓をオプションとして表示しますが、作成済みは表示しません。
- 投稿リクエストで必要に応じて姓と名を表示しますが、ID と作成者は表示しません。
required=true を使用してフィールドを必須としてマークできることはわかっていますが、モデルが使用されるすべての場所で必須としてマークされます。私がこれまでに把握した唯一のことは、それ自体がパラメーターであるため、put 要求に必要な ID です。
* @SWG\Parameter(
* name="id",
* in="path",
* required=true,
* type="integer"
* )