【发布时间】:2020-09-09 05:19:14
【问题描述】:
我使用 OpenAPI 3.0 来描述一个 API,其中每个资源都有一个基于其操作的微妙不同的架构。本质上,某些属性是可编辑的和/或需要的,具体取决于它是 POST 还是 PUT 请求。
除了为每个这样的操作指定架构之外,还有更好的方法吗? (其中 field2 在 PUT 上是只读的)
理想情况下,我想在一个地方指定架构(即所有属性),然后在每个操作上覆盖一些属性(例如只读)。
{
"paths":{
"/users":{
"put":{
"responses":{
"200":{
"$ref":"#/components/schemas/users_put"
}
}
},
"post":{
"responses":{
"200":{
"$ref":"#/components/schemas/users_post"
}
}
}
}
},
"components":{
"schemas":{
"users_post":{
"properties":{
"field1":{
"readOnly":true,
"type":"integer"
},
"field2":{
"type":"string"
}
}
},
"users_put":{
"properties":{
"field1":{
"readOnly":true,
"type":"integer"
},
"field2":{
"type":"string",
"readOnly":true
}
}
}
}
}
}
【问题讨论】:
标签: openapi