0

我正在尝试从 Swashbuckle 4 升级到 5 并将 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,响应类型已从 type 移动到响应 ref,但 JSON 似乎是正确的,如果 Preferences 或 address 未嵌套在 Customer 中,它会正确显示在 UI 中。

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

4

1 回答 1

1

这实际上与 Swashbuckle 无关,而是与 swagger-ui 无关。从外观上看,这可能是一个错误。你可以做些什么来测试它是直接从它的存储库中获取最新版本的 swagger-ui,并尝试根据 Swashbuckle 生成的 Swagger 定义运行它。URL 描述在入门部分 - https://github.com/domaindrivendev/Swashbuckle#getting-started

如果问题解决了,可以请Swashbuckle的作者升级UI版本。如果没有,我建议直接在 swagger-ui 上开票,它会得到解决。

于 2015-04-20T18:54:10.370 回答