Contact Manager Web API 示例[3] 分頁和查詢(Paging and Querying)


聯系人管理器web API是一個Asp.net web api示例程序,演示了通過ASP.NET Web API 公開聯系信息,並允許您添加和刪除聯系人,示例地址http://code.msdn.microsoft.com/Contact-Manager-Web-API-0e8e373d

Contact Manager Web API 示例[1]CRUD 操作 已經做了一個基本的介紹,

Contact Manager Web API 示例[2] Web API Routing 介紹Web API Routing。

本文主要介紹OData的查詢和分頁支持。

OData開放數據協議是微軟針對Google的GData推出的,旨在推廣Web程序數據庫格式標准化的開放數據協議,微軟將 OData 定義為基於 HTTP、AtomPub 和 JSON 的協議,增強各種網頁應用程序之間的數據兼容性,以提供多種應用、服務和數據商店的信息訪問。

Open Data Protocal (OData) 指定查詢字符串參數讓 Client 能使用它去排序與過濾結果。
Web API 提供以下支持 OData 查詢參數:

Web API 提供支持 OData 查詢參數

查詢參數

說明

范例

$filter

選擇與布爾表達式相符的項目

http://localhost:port/api/contacts?$filter=substringof(Name, 'Ed') eq true

$orderby

指定的屬性來排序結果

http://localhost:port/api/contacts?$orderby=Name

$skip

跳過前 n 筆元素

http://localhost:port/api/contacts?$skip=2

$top

傳回前 n 筆元素

http://localhost:port/api/contacts?$orderby=Name

$top 如果與 $orderby 一起使用,會先排序,然后再取得前 n 筆元素以返回。

例如,以下的 URI 會回傳前 3 筆聯系人數據,而且使用 name 排序過。
http://localhost:port/api/contacts?$top=3&orderby=name
要支持這些查詢選項,簡單的從 GET 方法中回去 IQueryable 類型和Queryable attribute (System.Web.Http.QueryableAttribute).

。例如我們把

[Queryable(ResultLimit=20)]

public IQueryable<Contact> Get()
{
          return this.repository.GetAll().AsQueryable();
}

只需要通過 .AsQueryable() 的幫忙,即可幫我們轉換。
更多 OData 查詢字符串參數信息,請查詢 OData: URI Conventions

參考數據

· Paging and Querying

· http://www.odata.org/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM