SharePoint REST API - 概述
博客地址:http://blog.csdn.net/FoxDave
SharePoint REST API不同于传统的Server Object Model和Client Object Model,是一种可以直接通过HTTP进行调用的接口。通过它可以直接访问和操作SharePoint的一些数据。如果目前你对REST还一无所知,可以先去简单了解一下。
REST服务是自SharePoint 2013开始引入的,可以远程与SharePoint数据进行交互的接口。
本文简单介绍一下REST服务的工作方式和简单的使用示例。
SharePoint REST服务的工作方式
如何使用REST与SharePoint的数据进行交互呢?很简单,你需要构建一个RESTful的HTTP请求,使用OData标准,和客户端对象模型是对应的。
比如客户端对象模型的List.GetByTitle(listname)方法,对应的REST终结点为:http://server/site/_api/lists/getbytitle('listname')
SharePoint中的client.svc处理HTTP请求,将响应结果以Atom或JSON的格式返回,然后你需要在你的客户端应用程序中转化该请求。下图展示了SharePoint REST的高层架构图。
由于REST的功能和易用性是客户端对象模型提供的,它们使用.NET Framework托管代码、SilverLight或JavaScript保留了跟SharePoint交互的主要开发选项。
使用HTTP命令调用SharePoint REST服务
使用SharePoint内置的REST服务,你需要构建一个RESTful的HTTP请求,使用OData标准,与你想使用的客户端对象模型API相对应。下表大致体现了这种对应关系。
| 你想做的操作 | 需要使用的HTTP请求 | 备注 |
| 读取数据 | GET | |
| 创建或更新数据 | POST | 使用POST来创建网站、列表或列表条目等数据。SharePoint REST服务支持发送包含对象定义的POST命令到表示集合的终端。对于POST操作,任何非必填属性会被设置为默认值。如果你打算设置一个只读属性,服务会返回一个异常。 |
| 更新或插入数据 | PUT | 使用PUT和MERGE操作来更新已存在的SharePoint对象。任何表示设置对象属性的服务终端都可以使用PUT和MERGE来完成。对于MERGE请求,设置属性是可选的,任何未被显示设置的属性将保留它们目前的属性值;对于PUT请求,如果你不在更新对象时指定所有必填属性,REST服务会返回一个异常。而且,对于未指定的非必填属性将会被设置为默认值。 |
| 删除数据 | DELETE | 使用HTTP的DELETE命令来删除终结点表示的SharePoint对象。在可被回收站回收的情况下,比如列表、文件和列表项目,会执行删除到回收站操作。 |
构造REST的URL来访问SharePoint数据
REST请求的URL基本上是跟客户端对象模型对应的,比如网站集和网站的终结点如下:
http://server/site/_api/site
http://server/site/_api/web
上面URL中的server表示服务器的名称,site/web表示特定网站集/网站的名称或路径。
因此,建议大家参照客户端对象模型来理解REST服务请求URL的格式,每一级对象用/来分隔。
扩展阅读链接:
Social feed REST:https://msdn.microsoft.com/library/f1cb914f-1e91-4e23-bf53-d2ab323eac13%28Office.15%29.aspx?f=255&MSPPError=-2147217396
Following people and content REST:https://msdn.microsoft.com/library/c05755df-846d-4a39-941d-950d066cc6d4(Office.15).aspx
Determine SharePoint REST service endpoint URIs:https://dev.office.com/sharepoint/docs/apis/rest/determine-sharepoint-rest-service-endpoint-uris
当然,之后的文章也会进行更深入细致的讲解每个API接口。
SharePoint REST断点示例
下面的内容主要讲述典型的REST端点URL示例,以使你更快速地了解如何跟SharePoint数据交互。REST请求URL的前缀都是http://server/site/_api/,这个可以记录一下,然后对于每类操作可以参照下表跟这个前缀连在一起构成一个完整的REST请求URL。对于POST等更新命令,需要在请求中提供body来说明数据。
| 描述 | URL端点 | HTTP方法 | 请求体(Body)内容 |
| 获取网站的标题 | web/title | GET | |
| 获取网站中所有的列表 | lists | GET | |
| 获取单一列表的元数据 | lists/getbytitle('listname') | GET | |
| 获取一个列表的项目集合 | lists/getbytitle('listname')/items | GET | |
| 获取文档的指定属性(获取文档标题) | lists/getbytitle('listname')?select=Title | GET |
创建一个列表:
lists POST
{
'_metadata':{'type':SP.List},
'AllowContentTypes': true,
'BaseTemplate': 104 ,
'ContentTypesEnabled': true,
'Description': 'My list description ',
'Title': 'RestTest '
}
向列表中添加一个项目:
lists/getbytitle('listname')/items POST
{
'_metadata':{'type':SP.listname ListItem},
'Title': 'MyItem'
}
批量Job支持
SharePoint Online和SharePoint 2016的REST服务支持使用OData的 $batch
查询选项来将多个请求整合到对服务的单次调用,更多信息可以参照这里。
MSDN地址:https://dev.office.com/sharepoint/docs/apis/rest/get-to-know-the-sharepoint-rest-service,访问原地址有更多的学习资源可以了解。
SharePoint REST API - 概述的更多相关文章
- Windows 商店应用中使用 SharePoint REST API
前面一篇我们介绍了 Office 365 REST API 的官方工具的使用,本篇我们来看一下 SharePoint REST API 本身的描述.结构和使用方法,以及一些使用经验. 首先来看看Sha ...
- SharePoint REST API - 基本操作(一)
博客地址:http://blog.csdn.net/FoxDave 本文讲述如何应用SharePoint的REST接口完成基本的增删查改操作. 使用SharePoint客户端API和REST服务进 ...
- 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 ...
- [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表
写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...
- [sharepoint]Rest api相关知识(转)
写在前面 最近又开始弄rest api了,通过sharepoint rest api获取站点信息,Items,fields非常方便,再结合OData查询,更是得心应手.这里记录学习的时候用到的知识点, ...
- SharePoint REST API - 基本操作(二)
博客地址:http://blog.csdn.net/FoxDave 上一节讲了SharePoint REST API的一些基本操作,本节将继续介绍一些关于SharePoint REST API的内容. ...
- SharePoint JavaScript API in application pages
前言 最近,在SharePoint 应用程序页中写JavaScript API,进行一些数据交互.其实,很简单的事情却遇到了问题,记录一下,希望能对遇到类似问题的人以帮助. 引用JavaScript ...
- API概述,使用步骤和Scanner概述及其API文档的使用
API概述 API(Application Programming Interface),应用程序编程接口.Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档.这些类将底 ...
- SharePoint 2013 开发——概述
博客地址:http://blog.csdn.net/FoxDave 近来阅读SharePoint 2013开发一书,带着与大家一起分享其中的内容. 部署场景: 本地部署(On-Premise D ...
随机推荐
- LeetCode--004--寻找两个有序数组的中位数(java)
转自https://blog.csdn.net/chen_xinjia/article/details/69258706 其中,N1=4,N2=6,size=4+6=10. 1,现在有的是两个已经排好 ...
- linux文件管理之管道与重定向
============================================================== 内容提要: 输入输出重定向.管道: 重定向的作用: 文件描述符 0 1 2 ...
- codeforces668b //Little Artem and Dance// Codeforces Round #348
题意:2种操作,转动或者奇偶位互换. 不论怎么交换,1的后两位一定是3,3的后两位一定是5.因此只要记录1,2的位置. //#pragma comment(linker,"/STACK:10 ...
- 报错 hint: Updates were rejected because the remote contains work that you do 解决方法
1. git pull origin master --allow-unrelated-histories 2.git pull origin master 3.git init 4.git remo ...
- linux网络配置命令(一)——ifconfig
linux网络配置命令(一)——ifconfig ifconfig 查看.配置网卡信息.已过时,推荐使用ip命令 格式: ifconfig [interface] ...
- 【Java】【2】String和List相互转换
正文: 1,String转List //常见的为逗号分隔 String str = "a,b,c"; List<String> list1 = Arrays.asLis ...
- Spring的几种注入bean的方式
在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入 这是最常用的方式: · 使用构造器注入: · 使用Filed注入(用于注解方式). 使用属性的se ...
- URL与URI的含义及区别
1.1 什么是URI? 简单点说:URI就是通用资源标志符,不理解是吧,我第一次听说也是不理解. 进一步说:网络上的一些资源(文档.图片.音频.视频.程序等)都是有一些通用资源标识(Universal ...
- mybatis的update使用选择
更新后台设置时,会分多个页面更新同一个表中的数据,愿想是尽量减少sql请求数据量并且减少重复代码. 比如博客园的: 假如只有一个用户信息表,这样的话每个页面只更新部分字段. 这种情况下的更新推荐在xm ...
- Python3 ElementTree.tostring()导致标签前辍变为ns0/ns1处理
一.说明 python中我们经常借助xml.etree.ElementTree对xml进行处理,其中ElementTree.fromstring()将字符串格式化成et对象,ElementTree.t ...