【发布时间】:2017-01-20 21:30:39
【问题描述】:
我在 .Net 项目中使用带有 Swagger UI 的 Swashbuckle。我在控制器上使用以下属性。
[SwaggerResponse(HttpStatusCode.OK, "IEnumerable<EmployeeModel>", typeof(IEnumerable<EmployeeModel>))]
生成的 JSON 文档会生成以下内容:
"responses": {
"200": {
"description": "IEnumerable<EmployeeModel>",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ResourceModels.EmployeeModel"
}
}
},
"400": {
"description": "BadRequest"
}
}
然而,Swagger UI 仅显示 IEnumerable 并删除 <EmployeeModel>。我确信插入符号是罪魁祸首。有解决办法吗?
【问题讨论】:
-
最好完全删除此描述,因为响应不是
IEnumerable<EmployeeModel>,而是架构已经描述的EmployeeModel数组。 -
IEnumerable 是一个集合,而不是一个数组。虽然返回的 JSON 类型是一个数组(如文档中所述),但端点返回一个集合。
-
我知道,但对于您的消费者来说,他们可能不会“谈论”.NET,它只是一个数组。
标签: swagger swagger-ui swashbuckle