SharePoint 用REST方式訪問列表

2021-09-05 01:14:18 字數 2207 閱讀 8307

在sharepoint 2010中,基本上有如下幾種資料訪問方式:

rest是sharepoint中一種資料訪問方式,這種方式只支援列表資料訪問介面,位於_vti_bin目錄下的的listdata.svc。

rest協議的乙個特點,就是可以把我們需要的操作都濃縮在乙個url中(比如通過:_vti_bin/listdata.svc/test(3)就可以獲取到test這個列表中id為3的那個條目的資訊,當然也可以通過一些特殊的寫法實現簡單的查詢、排序功能),並可以通過get、post、put、delete、merge這幾種http訪問方式,來實現列表資料的增、刪、查、改。

通過rest協議訪問資料的原理如下圖所示:

圖 01

通過這種方式訪問的時候,客戶端使用json的格式把需要的資料通過某種http方法傳送至包含listdata.svc的url位址上(如果是get方法的話,就沒有傳送的資料),然後返回資料的時候,可以返回xml格式(atom協議),當然也可以返回json格式(如果不特別宣告的話,預設使用atom協議,也就是xml格式)。

和客戶端物件模型相同的是,我們通過url,可以定義所需要返回的那些字段值,從而減少客戶端和伺服器端的資料傳遞大小。

這裡主要介紹get方式訪問資料的語法,即url語法。

例如:獲取test表所有資料

根據id獲取資料項

//獲取test表id為1的資料項

獲取指定字段資料  $select

=*       //獲取test表所有可用字段

//獲取test表中欄位名稱為name、url、description三個字段

獲取前n條資料 $top

//獲取test表中的前n條資料   n為大於0的正整數

根據某欄位排序  $orderby 支援多欄位排序,欄位間以逗號隔開

$orderby=publishdate asc            //按publishdate欄位公升序 支援asc/desc 

按條件曬選 $filter

$filter=id le 10                 //曬選id小雨等於10的專案

//選擇test表所有可用欄位id大於等於3的專案中的前10條記錄,並按照publishdate欄位、id欄位降序排列

例如:var createdate = encodeuricomponent("標題");

var url = "/_vti_bin/listdata.svc/test?$select=*

&$orderby=" + createdate + " asc

&$top=10&

$filter=name ne 'bear'";

$.ajax(,

error: function (a, b, c) ,

complete: function ()

});注:當查詢所有列表項為全部是result = data.d.results;

帶$filter或者$top時,result = data.d

問題:由於$filter只支援單個條件,所以對於複雜的查詢要求可能無法直接達到要求。

妥協方式:先根據url按某條件篩選,然後在ajax請求完成後對結果進行進一步加工處理

參考文件:

怎樣用通俗的語言解釋REST,以及RESTful?

一句話 就是用url定位資源,用http描述操作。我在這裡的答案主要解釋什麼是rest?為什麼要用rest?不包括具體該如何使用rest風格,你可以在網上看教程去學習相關知識。現在稍微具體一下什麼是rest架構風格。rest也就是representational state transfer 表現層...

用REST風格設計部落格API

模仿 github,設計乙個部落格 的 api 1 獲取自己部落格下的所有文章get api v1 user articles檢視文章時,使用get方法。這裡用單數user指代自己乙個人且不用指定自己使用者名稱或者id。v1代表版本號。響應內容 失敗響應 2 根據文章id獲取自己的文章get api...

我們可以用SharePoint做什麼

前言 sharepoint平台的體系結構 基本平台 核心服務 應用層面 從上面介紹的這些功能大家簡單的了解sharepoint是如何實現了門戶 文件管理,協作,社交等相關功能的無縫銜接。sharepoint基本實現了常見的站點的常見功能。由於微軟一直在大力的支援,因此sharepoint對於大的企業...