SharePoint REST API - OData查詢操作

Justin-Liu發表於2017-09-08

部落格地址:http://blog.csdn.net/FoxDave

本篇主要講述SharePoint REST中OData的查詢操作。SharePoint REST服務支援很多OData查詢字串操作,可以對你請求的資料進行查詢、篩選和排序。

查詢返回欄位

使用$select查詢操作來指定對於既定的列表或列表項(其他集合類的SharePoint資料也可)需要返回哪些欄位。可以使用$select=*來返回所有可用的欄位。

一般來說,如果不指定$select引數,那麼預設REST服務會返回所有可用的欄位。然而在一些情況下,一些SharePoint物件包含了非常耗費資源的屬性。為了優化REST的效能,這些屬性不會包含在預設的查詢中,因此必須進行顯示宣告。比如,SPWeb.EffectiveBasePermissions屬性預設是不返回的,必須在$select查詢選項中顯示宣告。

而且,你還可以指定來自其他列表的查閱項欄位,如下例:

http://server/site/_api/web/lists('guid')/items?$select=Title,Products/Name&$expand=Products/Name

查詢要返回的列表項

使用$filter引數來指定需要SharePoint REST服務返回哪些值,具體參照本文後面的部分。

查詢單值查閱項欄位

單值查閱項欄位在SharePoint REST服務中通常用兩個獨立的欄位來表示。一個表示真實的欄位值,另一個表示欄位名稱。

查詢使用者

在SharePoint REST服務中,使用者使用友好名稱(顯示名稱)來表示,所以不能用域名去做查詢。注意使用者查詢不支援基於Membership形式的認證,並且不支援使用Current操作符使用當前使用者的ID來做查詢。

查詢多值查閱項欄位和使用者

不支援。

返回結果排序

使用$orderby查詢選項來指定如何對返回的結果集進行排序。如果要對多個欄位進行排序,使用逗號分隔。你也可以通過在查詢中指定asc和desc關鍵字來指定是升序還是降序排序。

對返回的結果進行分頁

使用$top和$skiptoken查詢選項來查詢返回結果的子集。注意$skip查詢選項不支援SharePoint列表項的查詢。$top選項跟SQL一樣,用來指定你想返回結果集的前多少條資訊,比如top 10:

http://server/site/_api/web/lists('<guid>')/items$top=10

$skiptoken選項用來指定跳過多少條資訊之後返回結果。

$skiptoken=Paged=TRUE&amp;p_ID=5

注意這種查詢是有序的,舉個例子來說,你有一個下一頁的操作按鈕,當第一次返回1-20條結果到點選下一頁返回21-40條結果這個過程中,另一個使用者刪除了列表項3和16。此時你獲得的下一頁的返回結果中,跳過了2個列表項。

SharePoint REST服務中支援的OData查詢操作符

SupportedNot supported
Numeric comparisons Lt Le Gt Ge Eq NeArithmetic operators (Add, Sub, Mul, Div, Mod) Basic math functions (round, floor, ceiling)
String comparisons startsWith substringof Eq NeendsWith replace substring tolower toupper trim concat
Date and time functions day() month() year() hour() minute() second()DateTimeRangesOverlap operator Querying as to whether a date time falls inside a recurrent date time pattern
也可以參見下圖


本節就闡述到這裡。

注意,由於CSDN噁心的bug,文章的釋出時間為草稿的建立時間,所以下一篇文章的位置比較靠前,在這裡掛一下連結,之後發的內容會盡量注意一下這點,向讀者表示歉意。

http://blog.csdn.net/foxdave/article/details/71055076

相關文章