【问题标题】:In Swagger, how do I define a parameter as a multidimensional array?在 Swagger 中,如何将参数定义为多维数组?
【发布时间】:2015-12-18 15:11:10
【问题描述】:

在 Swagger 中,我可以创建一个像这样的任何类型的数组的参数:

"MyType" : {
  "description" : "my example object type",
  "type" : "object",
  "properties" : {
    "id" : {
      "description" : "identifier",
      "type" : "number"
    },
    "data" : {
      "description" : "data container",
      "type" : "array",
      "items" : {
        "type" : "string"
      }
    }
  }
}

其中定义了一个可能如下所示的对象:

{
  "id" : 1,
  "data" : ["a", "b", "c"]
}

但我需要做的是定义一个可能看起来像这样的对象:

{
  "id" : 1,
  "data" : [
    [0, 1, 2],
    ["a", "b"],
    [true, "foo", 99, false]
  ]
}

data 属性需要是一个多维数组,理想情况下它可以包含任意数量的“行”,每行包含任意数量的列,每个字段中包含任何类型的数据。我什至会满足于允许 data 只是一个数组的架构,但我不知道如何让它工作。

【问题讨论】:

    标签: json swagger jsonschema


    【解决方案1】:

    您只需将items 架构的type 更改为array。以下模式表示“数据”是一个数组,其项目是数组。内部数组没有约束。

    "data" : {
      "description" : "data container",
      "type" : "array",
      "items" : {
        "type" : "array",
        "items": {}
      }
    }
    

    【讨论】:

    • 当我这样做时,Swagger 编辑器会返回一个错误:“缺少必需的属性:项目”
    • 我讨厌 Swagger 声称使用 JSON Schema,但没有正确实现它。如果 Swagger 需要 items,您可以将其设置为空模式。我会更新答案以反映这一点。
    • @Jason 请看这个与相同stackoverflow.com/questions/38739750/…相关的问题
    猜你喜欢
    • 2023-04-10
    • 2017-06-04
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多