oneOf、anyOf 和 allOf,你可以描述既能处理不同输入类型,又能将多个模式组合成完整数据模型的 API。
oneOf, anyOf, allOf 关键字
allOf:将多个 schema 组合在一起(如合并对象或扩展基础 schema),相当于and运算符。anyOf:接受与任一提供的 schema 匹配的数据,相当于or运算符。oneOf:接受与提供的 schema 中恰好一个匹配的数据,相当于exclusive-or运算符。
Mintlify 对
oneOf 和 anyOf 采用相同的处理方式,因为它们在实际使用中很少对 API 产生影响。not 关键字目前不受支持。使用 allOf 组合模式(schema)
allOf 时,Mintlify 会对你的 OpenAPI 文档进行预处理,以更易读的方式展示复杂的组合。例如,当你用 allOf 合并两个对象模式(schema)时,Mintlify 会将两者的属性合并到一个对象中。这在利用 OpenAPI 的可复用组件时尤其有用。
使用 oneOf 和 anyOf 提供选项
oneOf 或 anyOf 时,这些选项会显示在一个带标签页的容器中。在每个子模式中指定一个 title 字段,为你的选项命名。例如,你可以这样展示两种不同类型的收货地址: