別のサーバーでホストされている Web Api エンドポイントを利用する場合、Get 要求で見つかった一致の総数を確認しながら、過剰なシリアル化と逆シリアル化を回避するためにページ付けを行う最良の方法は何ですか?
ウェブ API:
[Queryable]
public IQueryable<Customer> Get(string input) {
return _repo.GetCustomers(input).AsQueryable();
}
コントローラーコード:
HttpResponseMessage response = client.GetAsync("api/customer?input=test&$top=2&$skip=0").Result; // test string
if (response.IsSuccessStatusCode) {
CustomerSearchResultViewModel resultViewModel = new CustomerSearchResultViewModel();
resultViewModel.Customers = response.Content.ReadAsAsync<IEnumerable<Customer>>().Result.ToList();
resultViewModel.TotalResults = resultViewModel.Customers.Count;
}
この例では、ページネーションの前に見つかった一致の総数を返すのではなく、TotalResults が 2 に制限されます。
OData を活用して合計結果を取得する方法はありますか? それが不可能な場合、必要な数を取得しながら OData 機能を維持するにはどうすればよいでしょうか?