读取此post(请参阅:3如何在使用OpenAPI(Swagger)规范描述REST API时使用单一定义...),您可以注意如何使用OpenAPI使用readOnly属性保留一个资源表示,用于添加/更新并获取资源,而不是使用一个表示获取(GET集合项),另一个用于添加(POST集合)。例如,在以下用户单一表示中,ID是是只读属性,这意味着在创建用户时不会在表示中发送它,它将在用户检索时出现在表示中。如何使用OpenAPI规范
"User":
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"readOnly": true
},
"company_data": {
"type": "object",
"properties": {
.
.
.
},
"readOnly": false
}
}
}
这是非常干净,漂亮,保持资源的代表名单尽可能短,所以我想保持单一资源表示方法,但我面临这样做的问题是:如何管理要求只有输入属性是强制性的?假设我需要在创建用户(POST/users /)时根据需要设置company_data,但在检索用户(GET/users/{user_id})时不需要。 OpenAPI规范中有什么方法可以满足这种需求而不会丢失单个资源表示?
我的答案在下面。您可能还想看看我们设计的RAPID-ML,以使规范数据模型具有高度适应性,从而更容易在各种API中重复使用和标准化:http://rapid-api.org/rapid-ml –