开发者社区> justinliu927> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SharePoint REST API - REST请求导航的数据结构

简介: 博客地址:http://blog.csdn.net/FoxDave 从一个既定的URL获取其他SharePoint资源 当你用SharePoint REST服务进行开发的时候,你经常会从指定的一个SharePoint对象开始,但是却想要访问相关的其他资源,比如列表项所在的文件夹或文档库的结构。
+关注继续查看

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

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.
本篇就阐述到这里。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringBoot ~ Restful请求风格
Restful请求风格 在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。
1149 0
Spring Boot工程结构推荐
Spring 今天看了一位简书上朋友发来的工程,于是想到应该要写这么一篇。前人总结的最佳实践案例可以帮助我们免去很多不必要的麻烦。花点时间来看一下本文,绝对物超所值。
694 0
SharePoint 2013 搜索体系结构
博客地址:http://blog.csdn.net/FoxDave 本文参考自微软官方的Chart,记录一下,算是自己对这部分知识的总结。 Microsoft® SharePoint® Server 2013 中的搜索使用新组件进行了 重新设计,从而可帮助在单个服务器场内实现更大冗余,并可在多 个方向上进行扩展。
904 0
+关注
justinliu927
专注开发技术、SharePoint、云平台。Microsoft MVP。
254
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载