oneOf
、anyOf
和 allOf
,你可以描述同时处理不同输入类型的 API,或将多个模式组合为完整的数据模型。
oneOf
, anyOf
, allOf
关键字
allOf
:合并多个架构(例如合并对象或在基础架构之上扩展)。相当于逻辑运算符and
。anyOf
:接受与任一给定架构匹配的数据。相当于逻辑运算符or
。oneOf
:接受与给定架构中且仅有一个匹配的数据。相当于逻辑运算符exclusive-or
(异或)。
Mintlify 对
oneOf
与 anyOf
采取相同处理,因为它们在实际使用 API 时的差异通常不会产生影响。当前不支持
not
关键字。使用 allOf
组合架构
allOf
时,Mintlify 会对你的 OpenAPI 文档进行一些预处理,以更易读的方式展示复杂的组合。例如,当你用 allOf
合并两个对象架构时,Mintlify 会将两者的属性合并为一个对象。在利用 OpenAPI 的可复用组件时,这一点尤其有用。
使用 oneOf
和 anyOf
提供选项
oneOf
或 anyOf
时,选项会显示在带有选项卡的容器中。在每个子模式中指定 title
字段以为选项命名。比如,下面演示了两种不同类型的收货地址: