Swagger,一个int属性的示例值,对于json(0)和xml(1)

时间:2018-01-18 08:10:38

标签: swagger-ui

我是新手,并且坚持不懈。 当swagger UI加载时,它带有示例值。 在其中一个API下,当我选择JSON作为参数内容类型时,获取属性的示例值为0,并为XML参数内容类型获取1。

我已经将示例明确定义为模型定义,但它不起作用。

已将对象定义为:

> myClass:
>     description: bla bla
>     type: object
>     title: my_class
>     properties:
>       time_taken_in_min:
>         description: (Optional) Duration in minutes. Default value is 0.
>         type: integer
>         example: 0    
      xml:
>       name: my_class
>       namespace: urn:project

1 个答案:

答案 0 :(得分:1)

我一直在寻找答案,因为我遇到了同样的问题。据我所知,Xml中会发生以下情况。 Json工作正常。

  • 默认值为0的int字段设置为1.保留任何其他默认/示例值。
  • 默认值为0的十进制字段(包含0.0 ...)设置为1.1。任何其他默认/示例值仍然存在。
  • 枚举字段始终设置为枚举中的第一个值。
  • 默认为false时,布尔字段设置为true。
  • 它在Response as Request Example Value
  • 中发生

Json示例值

{
  "data": {
    "id": "CB92CD81-F51B-41BD-A864-FF3480C4AC93",
    "common": {
      "datefield": "2017-11-01",
      "intfield": 120,
      "boolfield": false,
      "enumfield": 2,

(...)

Xml示例值

<?xml version="1.0"?>
<Input>
  <data>
    <id>CB92CD81-F51B-41BD-A864-FF3480C4AC93</id>
    <common>
      <datefield>2017-11-01</datefield>
      <intfield>120</intfield>
      <boolfield>true</boolfield>
      <enumfield>1</enumfield>

(...)

来自json文件的一些定义

"enumfield": {
    "format": "int32",
    "description": "Choose from 1 = A, 2 = B, 3 = C",
    "default": 2,
    "enum": [1,
    2,
    3],
    "type": "integer",
    "example": 2
},
"boolfield": {
    "description": "Yes/no",
    "default": false,
    "type": "boolean",
    "example": false
},
"decimalfield": {
    "format": "double",
    "description": "Decimal value",
    "default": 0,
    "type": "number",
    "example": 0
},
"intfield": {
    "format": "int32",
    "description": "Integer value",
    "default": 120,
    "type": "integer",
    "example": 120
}

并非所有代码都会显示,而且某些代码会从原始代码更改,因为所有原始名称和说明都是荷兰语。