Swagger / Swashbuckle嵌套的响应没有正确显示

时间:2015-04-20 18:39:04

标签: swagger swagger-ui swashbuckle

我正在尝试从Swashbuckle 4升级到5并将swagger 1.2升级到2.

我遇到的问题是,如果响应中包含另一个对象,则响应模式无法正确显示。

使用Swagger 1.2时,我的模型架构看起来像这样:

{
  "Id": "",
  "FirstName": "",
  "LastName": "",
  "Address": {
    "StreetNumber": "",
    "City": "",
    "PostalCode": ""
  },
  "Preferences": [
    {
      "Name": "",
      "Brand": "",
      "MarketingName": ""
    }
  ]
}

模型是:

Customer {
Id (string, optional),
FirstName (string, optional),
LastName (string, optional),
Address(Address, optional),
Preferences(array[Preference], optional)
}
Address {
StreetNumber (string, optional),
City (string, optional),
PostalCode (string, optional)
}
Preference{
Name (string, optional),
Brand (string, optional),
MarketingName (string, optional),
    }

现在模型架构是:

{
  "Id": "",
  "FirstName": "",
  "LastName": "",
  "Preferences": [
    null,
  ]
}

模型是:

Customer {
Id (string, optional),
FirstName (string, optional),
LastName (string, optional),
Address(#/definitions/Address, optional),
Preferences(Array[#/definitions/Preference, optional)
}

JSON并没有真正改变。从swagger 1.2到2.0,响应类型已从类型转换为响应ref,但JSON似乎是正确的,如果Preferences或address未嵌套在Customer中,则它在UI中正确显示。

如何让地址和偏好的模型出现在Customers模型中?

1 个答案:

答案 0 :(得分:1)

这实际上与Swashbuckle毫无关系,而是swagger-ui。从它的外观来看,这是一个可能的错误。您可以做的测试是直接从其存储库获取最新版本的swagger-ui,并尝试针对Swashbuckle生成的Swagger定义运行它。该入门部分描述了该网址 - https://github.com/domaindrivendev/Swashbuckle#getting-started

如果问题解决了,您可以要求Swashbuckle的作者升级UI版本。如果没有,我建议直接在swagger-ui上开票,它将被解决。