2017-04-03 24 views
0

我在.Net中爲我們的系統創建了一個RESTful WebAPI,當我在我的客戶端進行搜索時,我認爲當需要過濾數據時,它應該擊中/ person路由傳遞參數。但是,返回的person對象有相當多的嵌套對象,可能會減慢數據檢索速度。我是否應該有一個單獨的控制器來返回一個人的更加扼要的視圖,我是否應繼續我的行事方式,還是應該隨後提出要求來分解此人?使用返回大數據集的REST進行搜索?

回答

0

事實上,沒有銀子彈的方式來解決你的問題,但有幾種方法,這可能對你有用。但是,在我看來,您關於優化搜索結果中資源表示的大小的想法是正確的。

  1. 您可以在過濾查詢中包含請求字段的列表。 (例如,參見ES search API中的類似簽名/方法)。許多搜索引擎都在遵循這種方法來減少冗餘響應負載。
  2. 正如你所說的,你可以在子資源中打破沉重的對象,這樣你就可以只包含鏈接到人內部的嵌套對象,而不包括內部對象的全部再聲明。 HATEOAS方法完全適用於這個目的,但它會增加應用程序的複雜性(但也有額外的靈活性)。

但是,您必須選擇,哪種方法對您的特定應用程序更好,但我認爲,一個好的起點將是具有請求字段列表的方法。