使用返回大型数据集的REST进行搜索?

时间:2017-04-03 08:02:33

标签: rest asp.net-web-api

我正在.Net中为我们的系统创建一个RESTful WebAPI,当我在我的客户端进行搜索时,我认为它应该在需要过滤数据时点击/ person路由传递参数。但是,返回的person对象具有相当多的嵌套对象,这可能会减慢数据检索速度。我是否应该有一个单独的控制器返回一个人的更镂空的视图,我应该继续我的方式,还是应该随后提出打破这个人的请求?

1 个答案:

答案 0 :(得分:0)

实际上,没有解决问题的方法,但有几种方法可能对您有用。但是,在我看来,您对优化搜索结果中资源表示大小的想法是正确的。

  1. 您可以在过滤查询中包含请求的字段列表。 (例如,请参阅ES search API中的类似签名/方法)。许多搜索引擎都在遵循这种方法来减少冗余响应有效负载。
  2. 正如您所提到的,您可以在子资源中分解重物,这样您就可以只包含指向人体内嵌套对象的链接,而不包括内部对象的整个重复。 HATEOAS方法非常适合此目的,但它会为您的应用程序增加额外的复杂性(但也具有额外的灵活性)。
  3. 但是,您必须选择哪种方法更适合您的特定应用,但我认为,一个好的起点将是使用请求字段列表的方法。