SharePoint REST API - REST請求導航的數據結構

博客地址:http://blog.csdn.net/FoxDavecss

從一個既定的URL獲取其餘SharePoint資源web

當你用SharePoint REST服務進行開發的時候,你常常會從指定的一個SharePoint對象開始,可是卻想要訪問相關的其餘資源,好比列表項所在的文件夾或文檔庫的結構。例如,假如你想要建立一個Add-in來訪問文檔庫中的文檔。這個Add-in必須識別真正的SharePoint網站URL,當你這麼作的時候,Add-in可以建立更多的請求來建立、更新或刪除相關的列表項或資源。api

想要實現這個的話,你的Add-in須要以下信息:安全

>包含想要訪問資源的網站集合網站相對URL服務器

>一個可以使你完成請求操做的表單摘要,HTTP請求動做如POST、PUT、MERGE和DELETE。markdown

基本過程以下:ide

1. 在既定的URL使用/contextinfo操做來訪問SharePoint網站集地址,以以下的格式:網站

http://server/web/doclib/forms/_api/contextinfoui

出於安全性的考慮,該操做只支持POST請求。spa

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對象

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.
本篇就闡述到這裏。
相關文章
相關標籤/搜索