博客地址: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 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. |