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

本篇就阐述到这里。

SharePoint REST API - REST请求导航的数据结构的更多相关文章

  1. SharePoint REST API - 一个请求批量操作

    博客地址:http://blog.csdn.net/FoxDave 本篇主要讲解如何应用$batch查询选项来批量执行REST/OData请求,它将多个操作捆绑到一个请求中,可以改进应用程序的性能 ...

  2. [sharepoint]Rest api相关知识(转)

    写在前面 最近又开始弄rest api了,通过sharepoint rest api获取站点信息,Items,fields非常方便,再结合OData查询,更是得心应手.这里记录学习的时候用到的知识点, ...

  3. Windows 商店应用中使用 SharePoint REST API

    前面一篇我们介绍了 Office 365 REST API 的官方工具的使用,本篇我们来看一下 SharePoint REST API 本身的描述.结构和使用方法,以及一些使用经验. 首先来看看Sha ...

  4. [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  5. SharePoint REST API - 基本操作(二)

    博客地址:http://blog.csdn.net/FoxDave 上一节讲了SharePoint REST API的一些基本操作,本节将继续介绍一些关于SharePoint REST API的内容. ...

  6. SharePoint REST API - 基本操作(一)

    博客地址:http://blog.csdn.net/FoxDave 本文讲述如何应用SharePoint的REST接口完成基本的增删查改操作. 使用SharePoint客户端API和REST服务进 ...

  7. SharePoint REST API - 概述

    博客地址:http://blog.csdn.net/FoxDave SharePoint REST API不同于传统的Server Object Model和Client Object Model ...

  8. Postman - 功能强大的 API 接口请求调试和管理工具

    Postman 是一款功能强大的的 Chrome 应用,可以便捷的调试接口.前端开发人员在开发或者调试 Web 程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的 Fi ...

  9. How to Call SharePoint 2013 API Service to Query The Lists

    How to Call SharePoint 2013 API In SharePoint 2013, we can query the list by it owner service, then ...

随机推荐

  1. 本地广播的简单示例 --Android开发

    1.局部通知管理器LocalBroadcastManager,用于同一个应用中不同组件之间发送广播.由于是在同应用中发送广播,所以使用它安全性.效率也会提高. 2.本例实现简单的发送本地广播的案例 点 ...

  2. H264编码 封装成MP4格式 视频流 RTP封包

    H264编码 封装成MP4格式 视频流 RTP封包         分类:             多媒体编程              2013-02-20 21:31     3067人阅读    ...

  3. LeetCode--458--可怜的小猪

    问题描述: 有1000只水桶,其中有且只有一桶装的含有毒药,其余装的都是水.它们从外观看起来都一样.如果小猪喝了毒药,它会在15分钟内死去. 问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你 ...

  4. Confluence 6 修改空间名字和标识

    希望修改空间名称: 在空间名称的边上,选择  图标. 输入新的空间名称,然后单击 保存(Save). 标识(Logo )- 修改空间的名称和标识. 重新组织(Reorder) - 拖动来从新组织快捷链 ...

  5. 架构探险笔记5-使框架具备AOP特性(下)

    开发AOP框架 借鉴SpringAOP的风格,写一个基于切面注解的AOP框架.在进行下面的步骤之前,确保已经掌了动态代理技术. 定义切面注解 /** * 切面注解 */ @Target(Element ...

  6. 【洛谷p1031】均分纸牌

    [博客园的第一条随笔,值得纪念一下] 均分纸牌[传送门] 洛谷上的算法标签是 这道题是一道贪心题,过了四遍才过(蒟蒻有点废) 第一遍的时候考虑的非常少,只想到了求出平均数→求差值→从左往右加差值: 这 ...

  7. 漏洞复现——bash远程解析命令执行漏洞

    漏洞描述:Bash脚本在解析某些特殊字符串时出现逻辑错误导致可以执行后面的命令,在一些cgi脚本中,数据是通过环境变量来传递的,这样就会形成该漏洞 漏洞原理:bash通过以函数名作为环境变量名,以“( ...

  8. org.springframework.web.bind.annotation重定向的问题

    @RequestMapping(value="/redir/authcode") public ModelAndView getAuthCode(){ String authUrl ...

  9. python-day73--django-分页

    ''' 批量导入数据:bulk_create Booklist=[] for i in range(100): Booklist.append(Book(title="book"+ ...

  10. 使用saltui实现图片预览查看

    项目是基于dingyou-dingtalk-mobile脚手架的一个微应用,这个脚手架使用的UI是antd-mobile,它提供了一个图片上传的组件,但是未提供图片预览的组件,在网上找了不少如何在re ...