oneOf
、anyOf
和 allOf
,你可以描述既能处理不同输入类型、又能将多个 schema 组合成完整数据模型的 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 的可复用 components 时,这一点尤其有用。
使用 oneOf
和 anyOf
提供选项
oneOf
或 anyOf
时,选项会显示在标签页容器中。请在每个子架构中指定一个 title
字段,为各个选项命名。例如,以下演示如何展示两种不同类型的送货地址: