Swagger/Swashbuckle 嵌套响应未正确显示
Swagger/ Swashbuckle nested responses not showing up correctly
我正在尝试从 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,响应类型已从 type 移动到 responses ref 但 JSON 似乎是正确的,如果 Preferences 或 address 未嵌套在 Customer 中,它会正确显示在 UI.
我怎样才能让 Address 和 preference 的模型出现在 Customers 模型中?
这实际上与 Swashbuckle 无关,而是 swagger-ui。从外观上看,这是一个可能的错误。测试它的方法是直接从其存储库获取最新版本的 swagger-ui,然后根据 Swashbuckle 生成的 Swagger 定义尝试 运行。 URL 在入门部分进行了描述 - https://github.com/domaindrivendev/Swashbuckle#getting-started。
如果问题解决了,可以联系Swashbuckle的作者升级UI版本。如果没有,我建议直接在swagger-ui上开工单,它会得到解决。
我正在尝试从 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,响应类型已从 type 移动到 responses ref 但 JSON 似乎是正确的,如果 Preferences 或 address 未嵌套在 Customer 中,它会正确显示在 UI.
我怎样才能让 Address 和 preference 的模型出现在 Customers 模型中?
这实际上与 Swashbuckle 无关,而是 swagger-ui。从外观上看,这是一个可能的错误。测试它的方法是直接从其存储库获取最新版本的 swagger-ui,然后根据 Swashbuckle 生成的 Swagger 定义尝试 运行。 URL 在入门部分进行了描述 - https://github.com/domaindrivendev/Swashbuckle#getting-started。
如果问题解决了,可以联系Swashbuckle的作者升级UI版本。如果没有,我建议直接在swagger-ui上开工单,它会得到解决。