我正在用 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 是可选的,而创建时不能更改。
- 在获取请求时,所有字段都将返回。
想要的是:
- 显示获取请求的所有字段。
- 根据需要显示 id,并在 put 请求上显示名字和姓氏作为可选,但不显示已创建。
- 根据发布请求的要求显示名字和姓氏,但不显示 id 和 created。
我知道我可以使用 required=true 将字段标记为必填字段,但这会将它们标记为在使用模型的任何地方都是必需的。到目前为止,我唯一想到的是 put 请求中所需的 id,因为它本身就是一个参数。
* @SWG\Parameter(
* name="id",
* in="path",
* required=true,
* type="integer"
* )