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,訪問原地址有更多的學習資源可以瞭解。
相關文章
- rest apiRESTAPI
- GraphQL API vs REST APIAPIREST
- Spark REST API & metricsSparkRESTAPI
- Elasticsearch(二)——Rest APIElasticsearchRESTAPI
- Django REST framework API 指南(21):SchemasDjangoRESTFrameworkAPI
- Harbor配置Swagger遠端REST APISwaggerRESTAPI
- rest-api設計風格RESTAPI
- Django REST framework API 指南(6):路由DjangoRESTFrameworkAPI路由
- Django REST framework API 指南(7):解析DjangoRESTFrameworkAPI
- Django REST framework API 指南(8):渲染DjangoRESTFrameworkAPI
- Django REST framework API 指南(27):SettingsDjangoRESTFrameworkAPI
- Django REST framework API 指南(15):限流DjangoRESTFrameworkAPI
- IndexedDB 非同步API概述Index非同步API
- Django REST framework API 指南(17):分頁DjangoRESTFrameworkAPI
- Django REST framework API 指南(18):版本控制DjangoRESTFrameworkAPI
- Elasticsearch Java High Level REST Client(Exists API)ElasticsearchJavaRESTclientAPI
- Elasticsearch Java High Level REST Client(Delete API)ElasticsearchJavaRESTclientdeleteAPI
- REST API簽名認證機制RESTAPI
- Django REST framework API 指南(13):認證DjangoRESTFrameworkAPI
- elasticsearch常用請求介面Rest API示例ElasticsearchRESTAPI
- Flask框架搭建REST-API服務Flask框架RESTAPI
- Pulsar 入門實戰(6)--Rest APIRESTAPI
- Django REST framework API 指南(23):返回 URLDjangoRESTFrameworkAPI
- Django REST framework API 指南(24):異常DjangoRESTFrameworkAPI
- Django REST framework API 指南(26):測試DjangoRESTFrameworkAPI
- Django REST framework API 指南(16):過濾DjangoRESTFrameworkAPI
- 在 .NET Core 中構建 REST APIRESTAPI
- Elasticsearch 入門實戰(8)--REST API 使用二(Search API)ElasticsearchRESTAPI
- (16) SpringCloud-Eureka的REST API及API擴充套件SpringGCCloudRESTAPI套件
- Django REST framework API 指南(5):檢視集DjangoRESTFrameworkAPI
- 影響rest api版本選擇的因素RESTAPI
- Django REST framework API 指南(12):驗證器DjangoRESTFrameworkAPI
- Django REST framework API 指南(14):許可權DjangoRESTFrameworkAPI
- Django REST framework API 指南(9):序列化DjangoRESTFrameworkAPI
- 使用JBang構建Spring Boot Rest API教程Spring BootRESTAPI
- SpringBoot:Java High Level REST Client 搜尋 APISpring BootJavaRESTclientAPI
- Django REST framework API 指南(4):通用檢視DjangoRESTFrameworkAPI
- Django REST framework API 指南(22):Format 字尾DjangoRESTFrameworkAPIORM
- Django REST framework API 指南(25):狀態碼DjangoRESTFrameworkAPI