OpenAPI 3.0 - 有条件地嵌套的对象

时间:2018-04-22 17:05:09

标签: swagger openapi

我有一个API我尝试使用OpenAPI 3.0进行文档编制,然后我将使用Redoc

进行查看

在此API中,端点可以包含对象,这些对象可以有条件地包含其他对象,依此类推。

例如:对象A可以包含对象B,对象B可以包含对象C.在端点1上,对象A包含对象B,对象B包含对象C.但是,在端点2上。对象B不包含对象C

我试图以尽可能干的方式构建我的组件,但是我也有完全的灵活性,只要在每个路径上组装对象模式的层次结构。

是否可以使用OpenAPI以干燥方式完成此操作?

1 个答案:

答案 0 :(得分:1)

readOnlywriteOnly关键字可让您将特定属性标记为仅包含在响应中或仅包含在请求中,discriminator可让您根据特定值更改整个架构属性。但是根据使用模式的路径/操作,无法改变嵌套模式。

最简单的解决方案是定义Object B的属性,该属性包含Object C作为可选属性,并在description中口头记录用法细节(属性描述,架构描述或操作描述)。