OpenApi - oneOf - 类型是字符串而不是对象

问题描述 投票:0回答:1

我有一个 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"
        }
}

这是定义它的最佳方式吗?

openapi
1个回答
0
投票

它们都是 GUID 类型

oneOf
要求子模式具有独特的属性,以便能够区分子模式 - 例如不同的
type
、不同的正则表达式
pattern
等。以便服务器或客户端可以明确地匹配数据实例到特定的子模式。

如果两个子模式都只是

type: string
而没有任何区别特征,则
oneOf
将不起作用。相反,使用:

"domainId": {
  "type": "string"
},
© www.soinside.com 2019 - 2024. All rights reserved.