Inheritance OpenApi 3.0一个或所有

Inheritance OpenApi 3.0一个或所有,inheritance,openapi,Inheritance,Openapi,我一直在搜索,没有找到很多关于何时在OpenApi 3.0中使用allOf或oneOf的示例或明确解释。 使用带鉴别器的allOf或oneOf有什么区别 我的用例如下: 如果未定义deviceType,则无法创建设备。您应该只能创建“移动设备”/“pin设备”/“信标设备”,其中包含的属性取决于其类型以及协议中的设备ID和名称 目前,我已经实现了allOf版本,它正在工作。但我想知道这是否正是我想要的 设备: 类型:对象 必修的: -身份证 -名字 -设备类型 鉴别器:设备类型 特性: 设备ID

我一直在搜索,没有找到很多关于何时在OpenApi 3.0中使用
allOf
oneOf
的示例或明确解释。
使用带鉴别器的
allOf
oneOf
有什么区别

我的用例如下:
如果未定义deviceType,则无法创建设备。您应该只能创建“移动设备”/“pin设备”/“信标设备”,其中包含的属性取决于其类型以及协议中的设备ID和名称

目前,我已经实现了
allOf
版本,它正在工作。但我想知道这是否正是我想要的

设备:
类型:对象
必修的:
-身份证
-名字
-设备类型
鉴别器:设备类型
特性:
设备ID:
类型:字符串
描述:设备的id(UUID)
只读:正确
姓名:
类型:字符串
描述:设备的名称
设备类型:
类型:字符串
描述:设备的类型
枚举:
-移动设备
-针阀
-豆制品
移动设备:
所有:
-$ref:“#/definitions/Device”
-所需:
-平台
-设备通话
-位置
特性:
站台:
类型:字符串
说明:|
设备的平台,这可以是任何字符串
表示平台类型,例如“iOS”
deviceToken:
类型:字符串
说明:|
deviceToken是设备推送通知令牌
由操作系统(iOS或Android)为该设备提供
使用推送通知标识设备
服务。
地点:
$ref:“#/定义/位置”
PIN设备:
所有:
-$ref:“#/definitions/Device”
-所需:
-位置
特性:
地点:
$ref:“#/定义/位置”
设备:
所有:
-$ref:“#/definitions/Device”
-所需:
-uuid
-少校
-小调
特性:
uuid:
类型:字符串
说明:|
信标的UUID,用于区分iBeacons
在您的网络中,从中的所有其他信标
你无法控制的网络。
主修:
类型:整数
说明:|
主要值旨在确定和
分群
格式:int32
最低:0
排他性最小值:假
最高限额:65535
排他性最大值:假
小调:
类型:整数
说明:|
次要值旨在识别和
区别个体
格式:int32
最低:0
排他性最小值:假
最高限额:65535
排他性最大值:假

我想实现在没有指定类型的情况下无法初始化设备,并且如果设备具有特定类型,则需要具有所有必需的属性。

欢迎来到,在这里发布时,请坚持“没有闲聊”。如中所述:直接询问有关编程的问题,如果有人能向你解释一些事情(这根本不是一个与编程相关的问题)。此外,也不应该有感谢,或宣布赞赏。请回顾一下我通过点击“编辑…以前”链接所做的更改。嘿,谢谢你,安顿,我是新来的,将在巡演中看一看。