没有名字的Swagger字符串数组

时间:2017-02-22 14:51:30

标签: arrays api documentation swagger swagger-ui

目前我正在尝试为我的软件创建一个swagger文件。 现在我想为timeRange创建一个定义。 我的问题是这个数组看起来像这样:

timeRange: {
  "2016-01-15T09:00:00.000Z", // this is the start date
  "2017-01-15T09:00:00.000Z" // this is the end date
}

如何创建开箱即用的示例值? 它是一个“字符串数组”,至少有两个。

"timeRange": {
  "type": "array",
  "items": {
    "type": "string",
    "example": "2017-01-15T09:00:00.000Z,2017-01-15T09:00:00.000Z"
  }
}

这会生成如下示例:

"timeRange": [
  "2017-01-15T09:00:00.000Z,2017-01-15T09:00:00.000Z"
]

此示例不起作用,因为它是一个数组而不是一个对象。 全部一起: 如何实现两个不同字符串(没有名称)的示例值。

希望你能帮助我! 干杯!

1 个答案:

答案 0 :(得分:0)

timeRange: {
  "2016-01-15T09:00:00.000Z", // this is the start date
  "2017-01-15T09:00:00.000Z" // this is the end date
}

无效JSON - "timeRange"需要用引号括起来,对象/数组语法应该不同。

如果使用对象语法{},则需要将值命名为属性:

"timeRange": {
  "start_date": "2016-01-15T09:00:00.000Z",
  "end_date": "2017-01-15T09:00:00.000Z"
}

否则timeRange必须是[]数组:

"timeRange": [
  "2016-01-15T09:00:00.000Z",
  "2017-01-15T09:00:00.000Z"
]


在第一个示例({} object)中,您的Swagger看起来如下,每个命名属性都有一个单独的example

"timeRange": {
  "type": "object",
  "properties": {
    "start_date": {
      "type": "string",
      "format": "date-time",
      "example": "2016-01-15T09:00:00.000Z"
    },
    "end_date": {
      "type": "string",
      "format": "date-time",
      "example": "2017-01-15T09:00:00.000Z"
    }
  },
  "required": ["start_date", "end_date"]
}

如果是[]数组,您可以指定一个多项数组的数组级example

"timeRange": {
  "type": "array",
  "items": {
    "type": "string",
    "format": "date-time"
  },
  "example": [
    "2016-01-15T09:00:00.000Z",
    "2017-01-15T09:00:00.000Z"
  ]
}