SharePoint REST API - 概述
部落格地址:http://blog.csdn.net/FoxDave
SharePoint REST API不同於傳統的Server Object Model和Client Object Model,是一種可以直接通過HTTP進行呼叫的介面。通過它可以直接訪問和操作SharePoint的一些資料。如果目前你對REST還一無所知,可以先去簡單瞭解一下。
REST服務是自SharePoint 2013開始引入的,可以遠端與SharePoint資料進行互動的介面。
本文簡單介紹一下REST服務的工作方式和簡單的使用示例。
SharePoint REST服務的工作方式
如何使用REST與SharePoint的資料進行互動呢?很簡單,你需要構建一個RESTful的HTTP請求,使用OData標準,和客戶端物件模型是對應的。
比如客戶端物件模型的List.GetByTitle(listname)方法,對應的REST終結點為:http://server/site/_api/lists/getbytitle('listname')
SharePoint中的client.svc處理HTTP請求,將響應結果以Atom或JSON的格式返回,然後你需要在你的客戶端應用程式中轉化該請求。下圖展示了SharePoint REST的高層架構圖。
由於REST的功能和易用性是客戶端物件模型提供的,它們使用.NET Framework託管程式碼、SilverLight或JavaScript保留了跟SharePoint互動的主要開發選項。
使用HTTP命令呼叫SharePoint REST服務
使用SharePoint內建的REST服務,你需要構建一個RESTful的HTTP請求,使用OData標準,與你想使用的客戶端物件模型API相對應。下表大致體現了這種對應關係。
你想做的操作 | 需要使用的HTTP請求 | 備註 |
讀取資料 | GET | |
建立或更新資料 | POST | 使用POST來建立網站、列表或列表條目等資料。SharePoint REST服務支援傳送包含物件定義的POST命令到表示集合的終端。對於POST操作,任何非必填屬性會被設定為預設值。如果你打算設定一個只讀屬性,服務會返回一個異常。 |
更新或插入資料 | PUT | 使用PUT和MERGE操作來更新已存在的SharePoint物件。任何表示設定物件屬性的服務終端都可以使用PUT和MERGE來完成。對於MERGE請求,設定屬性是可選的,任何未被顯示設定的屬性將保留它們目前的屬性值;對於PUT請求,如果你不在更新物件時指定所有必填屬性,REST服務會返回一個異常。而且,對於未指定的非必填屬性將會被設定為預設值。 |
刪除資料 | DELETE | 使用HTTP的DELETE命令來刪除終結點表示的SharePoint物件。在可被回收站回收的情況下,比如列表、檔案和列表專案,會執行刪除到回收站操作。 |
REST請求的URL基本上是跟客戶端物件模型對應的,比如網站集和網站的終結點如下:
http://server/site/_api/site
http://server/site/_api/web
上面URL中的server表示伺服器的名稱,site/web表示特定網站集/網站的名稱或路徑。
因此,建議大家參照客戶端物件模型來理解REST服務請求URL的格式,每一級物件用/來分隔。
擴充套件閱讀連結:
Social feed REST:https://msdn.microsoft.com/library/f1cb914f-1e91-4e23-bf53-d2ab323eac13%28Office.15%29.aspx?f=255&MSPPError=-2147217396
Following people and content REST:https://msdn.microsoft.com/library/c05755df-846d-4a39-941d-950d066cc6d4(Office.15).aspx
Determine SharePoint REST service endpoint URIs:https://dev.office.com/sharepoint/docs/apis/rest/determine-sharepoint-rest-service-endpoint-uris
當然,之後的文章也會進行更深入細緻的講解每個API介面。
SharePoint REST斷點示例
下面的內容主要講述典型的REST端點URL示例,以使你更快速地瞭解如何跟SharePoint資料互動。REST請求URL的字首都是http://server/site/_api/,這個可以記錄一下,然後對於每類操作可以參照下表跟這個字首連在一起構成一個完整的REST請求URL。對於POST等更新命令,需要在請求中提供body來說明資料。
描述 | URL端點 | HTTP方法 | 請求體(Body)內容 |
獲取網站的標題 | web/title | GET | |
獲取網站中所有的列表 | lists | GET | |
獲取單一列表的後設資料 | lists/getbytitle('listname') | GET | |
獲取一個列表的專案集合 | lists/getbytitle('listname')/items | GET | |
獲取文件的指定屬性(獲取文件標題) | lists/getbytitle('listname')?select=Title | GET |
lists POST
{
'_metadata':{'type':SP.List},
'AllowContentTypes': true,
'BaseTemplate': 104 ,
'ContentTypesEnabled': true,
'Description': 'My list description ',
'Title': 'RestTest '
}
向列表中新增一個專案:lists/getbytitle('listname')/items POST
{
'_metadata':{'type':SP.listname ListItem},
'Title': 'MyItem'
}
批量Job支援SharePoint Online和SharePoint 2016的REST服務支援使用OData的 $batch
查詢選項來將多個請求整合到對服務的單次呼叫,更多資訊可以參照這裡。
MSDN地址:https://dev.office.com/sharepoint/docs/apis/rest/get-to-know-the-sharepoint-rest-service,訪問原地址有更多的學習資源可以瞭解。
相關文章
- linq and rest api in sharepointRESTAPI
- SharePoint REST API - 同步SharePoint列表項RESTAPI
- SharePoint REST API - 確定REST端點URLRESTAPI
- SharePoint REST API - 基本操作(二)RESTAPI
- SharePoint REST API - 基本操作(一)RESTAPI
- SharePoint REST API - 使用REST API和jQuery上傳一個檔案RESTAPIjQuery
- SharePoint REST API - OData查詢操作RESTAPI
- SharePoint REST API - 列表和列表項RESTAPI
- SharePoint REST API - REST請求導航的資料結構RESTAPI求導資料結構
- SharePoint REST API - 一個請求批量操作RESTAPI
- SharePoint REST API - 資料夾和檔案RESTAPI
- SharePoint REST API - 使用REST介面對列表設定自定義許可權RESTAPI
- SharePoint Framework 概述Framework
- rest apiRESTAPI
- GraphQL API vs REST APIAPIREST
- Elasticsearch(二)——Rest APIElasticsearchRESTAPI
- Spark REST API & metricsSparkRESTAPI
- SharePoint 2013 開發——概述
- REST : rest_framework.decorators.api_view 實現PATCHRESTFrameworkAPIView
- http REST API 驗證庫HTTPRESTAPI
- 利用OpenStack Rest API 建立映象RESTAPI
- 撰寫合格的REST APIRESTAPI
- Rest API 的那些事兒RESTAPI
- REST API 最佳入門指南RESTAPI
- ASP.NET Web API與Rest web api(一)ASP.NETWebAPIREST
- Django REST framework API 指南(21):SchemasDjangoRESTFrameworkAPI
- Django REST framework API 指南(8):渲染DjangoRESTFrameworkAPI
- Django REST framework API 指南(6):路由DjangoRESTFrameworkAPI路由
- Django REST framework API 指南(7):解析DjangoRESTFrameworkAPI
- Django REST framework API 指南(15):限流DjangoRESTFrameworkAPI
- 5個REST API安全準則RESTAPI
- REST API的五種規則RESTAPI
- 安息吧 REST API,GraphQL 長存RESTAPI
- 安息吧,REST API,GraphQL 長存RESTAPI
- Django 中 REST API 的設計DjangoRESTAPI
- Ambari 常用的 REST API 介紹RESTAPI
- IndexedDB 非同步API概述Index非同步API
- Mobile Media API概述 (轉)API