SharePoint REST API - REST請求導航的資料結構
部落格地址:http://blog.csdn.net/FoxDave
從一個既定的URL獲取其他SharePoint資源
當你用SharePoint REST服務進行開發的時候,你經常會從指定的一個SharePoint物件開始,但是卻想要訪問相關的其他資源,比如列表項所在的資料夾或文件庫的結構。例如,假如你想要建立一個Add-in來訪問文件庫中的文件。這個Add-in必須識別真正的SharePoint網站URL,當你這麼做的時候,Add-in能夠建立更多的請求來建立、更新或刪除相關的列表項或資源。
想要實現這個的話,你的Add-in需要如下資訊:
>包含想要訪問資源的網站集合網站相對URL
>一個能夠使你完成請求操作的表單摘要,HTTP請求動作如POST、PUT、MERGE和DELETE。
基本過程如下:
1. 在既定的URL使用/contextinfo操作來訪問SharePoint網站集地址,以如下的格式:
http://server/web/doclib/forms/_api/contextinfo
出於安全性的考慮,該操作只支援POST請求。
2. 通過/contextinfo操作返回的SPContextWebInformation物件屬性來訪問額外需要的資源。
可以嘗試下面的操作步驟:
1. 從一個既定的SharePoint列表項開始,如:http://site/web/doclib/myDocument.docx。
2. 去掉URL的最後一段,就相當於在訪問一個文件庫、資料夾或者列表:http://site/web/doclib/
3. 將/contextinfo加到URL後面,如:http://site/web/doclib/_api/contextinfo
4. 從請求的響應中獲取表單摘要和網站的完整URL。
5. 將_api加到網站URL後面。
6.用上面得到的這些內容去訪問其他你需要的資源。
如果你使用的是GET請求或者使用了一個有效的OAuth令牌,那麼你不需要傳遞表單摘要。
訪問父網站和子網站
當你使用服務端物件模型訪問你的網站結構時,可以使用SPWeb.ParentWeb和SPWeb.Webs屬性來訪問父網站和子網站。
與其相應的REST資源為web/parentweb和web/webs。但是不要返回網站物件的資源,因為REST服務依據OData標準,返回完整的網站屬性會使請求變得非常的低效。一般會返回一個WebInfo物件,該物件包含了網站的標量屬性而沒有關聯的屬性集合如欄位集合。
訪問資料夾結構
SharePoint REST服務不支援按照垂直級別訪問SharePoint的資料夾,需要通過Web.GetFolderByServerRelativeUrl來實現。
/_vti_bin/client.svc/web/lists/SharedDocuments/folder1/stuff/things/Recycle(不支援)
/_vti_bin/client.svc/web/GetFolderByServerRelativeUrl('SharedDocuments/folder1/stuff/things')/Recycle(支援)
SPContextWebInformation物件屬性
SPContextWebInformation Property | Description |
---|---|
webFullUrl | 獲取最近網站的ServerRelativeURL。 |
siteFullUrl | 獲取網站集中根網站的ServerRelativeURL。如果最近網站就是根網站,該屬性值跟webFullUrl相同。 |
formDigestValue | 獲取伺服器請求的表單摘要。 |
LibraryVersion | 獲取REST庫的當前版本。 |
SupportedSchemaVersions | 獲取支援的REST/CSOM庫的版本清單。 |
WebInfo property | Description |
---|---|
Created | Gets a value that specifies when the site was created. |
Description | Gets or sets the description for the site. |
Id | Gets a value that specifies the site identifier. |
Language | Gets a value that specifies the locale ID (LCID) for the language that is used on the site. |
LastItemModifiedDate | Gets a value that specifies when an item was last modified in the site. |
Title | Gets or sets the title for the site. |
WebTemplateId | Gets the identifier of the site template. |
相關文章
- SharePoint REST API - 一個請求批量操作RESTAPI
- Django REST framework API 指南(1):請求DjangoRESTFrameworkAPI
- elasticsearch常用請求介面Rest API示例ElasticsearchRESTAPI
- SharePoint REST API - 概述RESTAPI
- SharePoint REST API - 確定REST端點URLRESTAPI
- SharePoint REST API - 資料夾和檔案RESTAPI
- linq and rest api in sharepointRESTAPI
- SharePoint REST API - 基本操作(二)RESTAPI
- SharePoint REST API - 基本操作(一)RESTAPI
- SharePoint REST API - 使用REST API和jQuery上傳一個檔案RESTAPIjQuery
- SharePoint REST API - 同步SharePoint列表項RESTAPI
- 處理REST SOE請求REST
- SharePoint REST API - OData查詢操作RESTAPI
- SharePoint REST API - 列表和列表項RESTAPI
- 使用RxJava快取Rest請求RxJava快取REST
- SharePoint REST API - 使用REST介面對列表設定自定義許可權RESTAPI
- rest apiRESTAPI
- Django REST framework的請求與響應DjangoRESTFramework
- GraphQL API vs REST APIAPIREST
- 在 .NET Core 中構建 REST APIRESTAPI
- Elasticsearch Java Low Level REST Client(執行請求)ElasticsearchJavaRESTclient
- Elasticsearch(二)——Rest APIElasticsearchRESTAPI
- Spark REST API & metricsSparkRESTAPI
- Django REST framework API 指南(20):後設資料DjangoRESTFrameworkAPI
- REST : rest_framework.decorators.api_view 實現PATCHRESTFrameworkAPIView
- 探索Django REST框架構建強大的APIDjangoREST框架架構API
- 撰寫合格的REST APIRESTAPI
- Rest API 的那些事兒RESTAPI
- 構建基於Spring4的Rest APISpringRESTAPI
- 使用JBang構建Spring Boot Rest API教程Spring BootRESTAPI
- REST API的五種規則RESTAPI
- Django 中 REST API 的設計DjangoRESTAPI
- Ambari 常用的 REST API 介紹RESTAPI
- http REST API 驗證庫HTTPRESTAPI
- 利用OpenStack Rest API 建立映象RESTAPI
- REST API 最佳入門指南RESTAPI
- 【Rest】PUT Vs Post in RestREST
- Django REST framework API 指南(21):SchemasDjangoRESTFrameworkAPI