SharePoint REST API - REST请求导航的数据结构
博客地址: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请求导航的数据结构的更多相关文章
- SharePoint REST API - 一个请求批量操作
博客地址:http://blog.csdn.net/FoxDave 本篇主要讲解如何应用$batch查询选项来批量执行REST/OData请求,它将多个操作捆绑到一个请求中,可以改进应用程序的性能 ...
- [sharepoint]Rest api相关知识(转)
写在前面 最近又开始弄rest api了,通过sharepoint rest api获取站点信息,Items,fields非常方便,再结合OData查询,更是得心应手.这里记录学习的时候用到的知识点, ...
- Windows 商店应用中使用 SharePoint REST API
前面一篇我们介绍了 Office 365 REST API 的官方工具的使用,本篇我们来看一下 SharePoint REST API 本身的描述.结构和使用方法,以及一些使用经验. 首先来看看Sha ...
- [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表
写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...
- SharePoint REST API - 基本操作(二)
博客地址:http://blog.csdn.net/FoxDave 上一节讲了SharePoint REST API的一些基本操作,本节将继续介绍一些关于SharePoint REST API的内容. ...
- SharePoint REST API - 基本操作(一)
博客地址:http://blog.csdn.net/FoxDave 本文讲述如何应用SharePoint的REST接口完成基本的增删查改操作. 使用SharePoint客户端API和REST服务进 ...
- SharePoint REST API - 概述
博客地址:http://blog.csdn.net/FoxDave SharePoint REST API不同于传统的Server Object Model和Client Object Model ...
- Postman - 功能强大的 API 接口请求调试和管理工具
Postman 是一款功能强大的的 Chrome 应用,可以便捷的调试接口.前端开发人员在开发或者调试 Web 程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的 Fi ...
- 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 ...
随机推荐
- 基于AngularJS的Onsen UI --Onsen UI学习笔记
AngularJS与Onsen UI的结合,Onsen UI应用程序实际上是一个AngularJS 1应用程序. <!doctype html><html lang="en ...
- LeetCode--844--比较含退格的字符串(java)
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表退格字符. 示例 1: 输入:S = "ab#c", T = " ...
- 进程状态TASK_UNINTERRUPTIBLE
进程拥有以下几种状态:就绪/运行状态.等待状态(可以被中断打断).等待状态(不可以被中断打断).停止状态和僵死状态. TASK_RUNNING: 正在运行或处于就绪状态:就绪状态是指进程申请到了CPU ...
- vux弹框显示
//点击按钮,执行什么成功,失败用这个合适this.$vux.toast.show({ text: '添加成功'}) //点击按钮,提示出现的问题 this.$vux.toast.show({ tex ...
- python记录_day31 进程同步和进程通信
一.进程同步 1.同步锁(又叫互斥锁) 加锁的代码以后,同一时间内只能被一个进程执行 from multiprocessing import Process, Lock def fun(loc): l ...
- Spring的几种注入bean的方式
在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入 这是最常用的方式: · 使用构造器注入: · 使用Filed注入(用于注解方式). 使用属性的se ...
- 【Linux】bash shell学习
Bash Shell Linux系统的合法shell都写入/etc/shells这个文件,默认使用的shell版本称为“Bourne Again Shell(简称bash)” 用户登录时系统会分配一个 ...
- JavaScript基础(四)
十六.client.offset.scroll系列 1.client系列 代码如下: <!DOCTYPE html> <html> <head> <meta ...
- vijos1448校门外的树
描述 校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的……如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作:K=1,K=1,读入l.r表 ...
- 前端开发VScode常用插件
名称 功能 Auto Close Tag 自动闭合HTML标签 Auto Import Typescript 自动import提示 Auto Rename Tag 修改HTML标签时,自动修改匹配的标 ...