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 ...
随机推荐
- Mycat水平拆分之十种分片规则
水平切分分片实现 配置schema.xml 在同一个mysql数据库中,创建了三个数据库 testdb1,testdb2,testdb3.并在每个库中都创建了user表 <?xml ...
- 【洛谷p1601】A+B Problem(高精)
高精度加法的思路还是很简单容易理解的 A+B Problem(高精)[传送门] 洛谷算法标签: 附上代码(最近懒得一批) #include<iostream> #include<cs ...
- Educational Codeforces Round 48 (Rated for Div. 2)G. Appropriate Team
题意:求满足条件的(i,j)对数:\(gcd(v,a_i)=x,lcm(v,a_j)=y\) 题解:\(x|a_i,a_j|y\),\(x|y\),考虑质因子p,假设a_i中p次数为a,x中次数为b, ...
- MyBatis动态sql之${}和#{}区别
前言 接触mybatis也是在今年步入社会之后,想想也半年多了,缺没时间去系统的学习,只知道大概,也是惭愧. 不知道有多少刚毕业的同学和我一样,到现在还没仔仔细细去了解你每天都会见到使用到的框 ...
- HDU-6386-最短路
Age of Moyu Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Tot ...
- LINQ 常用from
单个form子句string[] values = { "LINQ学习", "LINQ基本语句", "from子句", "单个fr ...
- ORACLE-016:ora-01720 授权选项对于'xxxx'不存在
报错的情形如下, A用户:视图V_A B用户:视图V_B,并且用到了V_A C用户:需要用V_B, 授权过程, A用户下: grant select on V_A to B B用户下: grant s ...
- [NOIP 2015TG D2T3] 运输计划
题目背景 公元 2044 年,人类进入了宇宙纪元. 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条航道连通了 L 国的所有星球. 小 P 掌管一家 ...
- Hadoop---Exception in thread "main" java.lang.NullPointerException问题的解决
Exception in thread "main" java.lang.NullPointerException问题的解决 解决: 首先我们来分析下这个问题,我是使用debug ...
- Hadoop---桥接集群的搭建
Hadoop---桥接群的搭建 集群分配:(一主四从) 我电脑的虚拟机:hadoop4:namenode+datanode+resourceManager 我one-friend的电脑虚拟机:hm ...