我有一个 openapi 规范,其中一个对象只能包含 2 个 id 之一:type1 id 或 type2 id。这些 id 中的每一个都是字符串类型。官方文档显示了在使用 oneOf 时使用 refs,这表明它们需要是一个对象,但在我的例子中,这两种类型只是字符串类型。
"domainId": {
"oneOf":
[
{
"$ref": "#/components/type1Id"
},
{
"$ref": "#/components/type2Id"
}
]
},
"components":
{
"type1Id":
{
"type": "string"
},
"type2Id":
{
"type": "string"
}
}
这是定义它的最佳方式吗?
它们都是 GUID 类型
oneOf
要求子模式具有独特的属性,以便能够区分子模式 - 例如不同的type
、不同的正则表达式pattern
等。以便服务器或客户端可以明确地匹配数据实例到特定的子模式。
如果两个子模式都只是
type: string
而没有任何区别特征,则 oneOf
将不起作用。相反,使用:
"domainId": {
"type": "string"
},