【发布时间】:2019-07-05 17:52:38
【问题描述】:
我使用 ef-core 将 Swashbuckle 添加到 .net core web-api 项目中。 我的问题是我的 ef 自动生成的类的虚拟属性被添加到了招摇示例响应中,这使得响应变得巨大,我只想显示表格属性,而不是关系。
来自控制器的代码示例:
[HttpGet("devices", Name = "GetDevices")]
public async Task<ActionResult<List<Device>>> Devices()
{
var devices = await _deviceDa.GetDevices();
return Json(devices);
}
我的问题是 ef 自动生成的类位于一个单独的类库中,我无权更改。我不能简单地将 JsonIgnore 添加到这些虚拟属性中。
是否可以让 Swashbuckle 忽略所有虚拟属性?
【问题讨论】:
-
如果使用 ViewModel 会怎样?看起来您正在返回对象本身,这不是一个好习惯,您应该始终返回 DTO(数据传输对象)。然后在 DTO 上,您可以设置要返回的属性。
-
这在微服务架构上运行,这个特定的服务只是 SQL 数据库的一个休息接口,然后还有一个额外的微服务可以为用户表提供各种 DTO 端点。
标签: c# swagger asp.net-core-webapi swashbuckle