【发布时间】:2016-06-24 00:17:04
【问题描述】:
我正在使用 ASP.NET Web API 创建一个 RESTful API。我正在尝试找出限制子对象显示的数据量的最佳方法。
为了解释,我有三个实体,Objects、Channels 和 ChannelData。一个对象可以有 0 个或多个 Channel,一个 Channel 可以有 0 个或多个 ChannelData(通常为 1000 个)。
我想要以下端点:
-
/api/Objects- 返回对象及其通道的 JSON 列表,但不返回 ChannelData(可能是摘要数据,例如数据量等)。
-
/api/Objects/{{objectId}}/ChannelData?channel={{channelName}}- 以 JSON 格式返回特定对象的特定通道的所有数据。
默认情况下,Web API 会尝试显示 /api/Objects 中的所有内容,包括 1000 个 ChannelData 对象。防止 ChannelData 数组出现在特定端点的最佳方法是什么?
【问题讨论】:
-
Web API 仅显示您在方法中返回的内容。那么,不要加载channeldata?
-
你在使用 ORM 吗?您可以发布您的
GET方法的代码吗? -
对象包含一个 Channels 列表,其中包含一个 ChannelData 列表。如果我返回一个对象,它将自动包含 Channels 列表和 ChannelData 列表。
标签: c# asp.net json api asp.net-web-api