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