Swagger OpenAPI 3.0-条件嵌套对象

Swagger OpenAPI 3.0-条件嵌套对象,swagger,openapi,Swagger,Openapi,我有一个API,我正试图使用OpenAPI3.0编写文档,然后我将使用 在这个API中,端点可以包括对象,这些对象可以有条件地包括其他对象,依此类推 例如:对象A可以包含对象B,对象B可以包含对象C。在端点1上,对象A包含对象B,对象B包含对象C。但是,在端点2上。对象B不包含对象C 我试图以最简单的方式构造我的组件,但我也有完全的灵活性,可以根据每个路径组装对象模式的层次结构 是否可以使用OpenAPI以干燥的方式实现这一点 使用readOnly和writeOnly关键字,可以将特定属性标记为

我有一个API,我正试图使用OpenAPI3.0编写文档,然后我将使用

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

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

我试图以最简单的方式构造我的组件,但我也有完全的灵活性,可以根据每个路径组装对象模式的层次结构


是否可以使用OpenAPI以干燥的方式实现这一点

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


最简单的解决方案是将包含对象C的对象B的属性定义为可选属性,并在
说明
(属性说明、模式说明或操作说明)中口头记录使用细节。

顺便说一句,这是一个很好的问题,我建议您也在中询问。@Helen谢谢!我刚把问题贴在那里,谢谢你的意见!我想我可能需要包括一些书面说明,尽管这也让我怀疑这是否是一个api气味。不幸的是,我从未在OpenAPI github上收到回复,但我确实有一个后续问题:如果我为每个单独的对象定义了模式组件,我可以在每个端点的基础上将嵌套组合在一起吗?也就是说,通过
$refs
,假设响应包含objectA,objectA本身包含object B&C,而C包含D,等等