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

oneOfanyOfallOf 关键字

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

使用 allOf 组合模式

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

使用 oneOfanyOf 提供选项

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