阅读这篇关于使用 OpenAPI (Swagger) 规范描述 REST API的帖子(请参阅:3 How to use a single definition when... ),您可以注意如何使用readOnly属性保留单个资源表示以添加/更新和获取资源有一种表示用于获取(获取集合项)和另一种表示用于添加(POST 到集合)。例如,在下面的 User 单一表示中,id是一个只读属性,这意味着它不会在创建用户时在表示中发送,而是在检索用户时存在。
"User":
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"readOnly": true
},
"company_data": {
"type": "object",
"properties": {
.
.
.
},
"readOnly": false
}
}
}
保持资源表示列表尽可能短真的很干净而且很好,所以我想保持单一资源表示方法,但我面临的问题是:当一个属性对于输入来说是强制性的时如何管理required ? 假设我需要在创建用户时根据需要设置company_data (POST /users/),但在检索用户时不需要设置 (GET /users/{user_id})。OpenAPI 规范中有什么方法可以在不丢失单一资源表示的情况下满足这种需求?