在 Swagger 中,如何将参数定义为多维数组?

In Swagger, how do I define a parameter as a multidimensional array?

在 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 属性 需要是一个多维数组,理想情况下它可以包含任意数量的 "rows",每个包含任意数量的列每个字段中的任何类型的数据。我什至满足于允许 data 只是一个数组的模式,但我不知道如何让它工作。

您需要做的就是将 items 架构的 type 更改为 array。以下架构表示 "data" 是一个数组,其项是数组。内部数组没有限制。

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