Skip to main content
当你的 API 接受多种数据格式、包含条件字段或采用继承模式时,OpenAPI 的模式组合关键字可帮助你为这些灵活的结构编写文档。通过 oneOf、anyOf 和 allOf,你可以描述能够处理不同输入类型,或将多个模式组合为完整数据模型的 API。

oneOf、anyOf、allOf 关键字

对于复杂数据类型,OpenAPI 提供了用于组合模式的关键字:
  • allOf:组合多个模式(类似合并对象或扩展基础模式),相当于 and 运算符。
  • anyOf:接受与提供的任一模式匹配的数据,相当于 or 运算符。
  • oneOf:仅接受与提供的模式中恰好一个匹配的数据,相当于“异或”运算符。
Mintlify 将 oneOf 和 anyOf 视为相同处理,因为在实际使用 API 时两者的差异很少产生影响。
有关这些关键字的详细规范,请参阅 OpenAPI 文档。
目前不支持 not 关键字。

使用 allOf 组合模式

当你使用 allOf 时,Mintlify 会对你的 OpenAPI 文档进行预处理,以更易读的方式展示复杂组合。例如,当你用 allOf 组合两个对象模式时,Mintlify 会将两者的属性合并为一个对象。这在利用 OpenAPI 的可复用组件时尤其有用。
object

使用 oneOf 和 anyOf 提供选项

当你使用 oneOf 或 anyOf 时,选项会显示在带有选项卡的容器中。请在每个子架构中指定一个 title 字段,为这些选项命名。例如,下面展示了如何显示两种不同类型的收货地址:
object
string
住址的街道与门牌