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 ...
随机推荐
- Java中的参数传递 --Java
1.基本类型传值,对象类型传地址 按值传递:当将一个参数传递给一个方法时,方法接收的是原始值的一个副本.因此,如果方法修改了该参数,仅改变副本,而原始值保持不变. 按引用传递:当将一个参数传递给一个方 ...
- WPF:数据和行为
如果自己来做一个UI框架,我们会首先关注哪些方面?我想UI框架主要处理的一定包括两个主要层次的内容,一个是数据展现,另一个就是数据操作,所以UI框架必须能够接收各种不同的数据并通过UI界面展现出来,然 ...
- Configuring Groovy SDK within IntelliJ IDEA
一.原因 IntelliJ IDEA期待一个the standard Groovy SDK 二.解决方案: 下载安装Groovy就可以了 官网下载地址: http://groovy-lang ...
- Confluence 6 如何考虑设置一个空间的主页
这空间是干什么的?空间主页是访问你空间的用户最先看到的页面.如果你在这个页面中包含一些你空间是干什么的内容能够帮助你的用户更加容易的访问你的空间,同时也能够让你的用户更加容易了解你正在工作的事情.你可 ...
- memcached的部署
window下memcached注册服务 cmd:在学习Memcached时,为了模拟分布存储,常常需要建多个Memcached服务,如何建呢,只能使用命令行了 以管理员身份运行cmd,输入如下命令 ...
- CRM系统之stark组件流程分析
CRM系统主要通过自定义stark组件来实现的(参照admin系统自定义): STARK组件: 1 admin组件 1 如何使用admin 2 admin源码 3 创建自己的admin组件:stark ...
- PostgreSQL CPU占用100%性能分析及慢sql优化
查看连接数变化 CPU利用率到达100%,首先怀疑,是不是业务高峰活跃连接陡增,而数据库预留的资源不足造成的结果.我们需要查看下,问题发生时,活跃的连接数是否比平时多很多.对于RDS for PG,数 ...
- 按钮切换显示不同的内容(js控制)
今天项目发现了一个jsp页面按钮切换,下面展示模块的不同显示问题,看到同事修改完之后的效果,js控制感觉特写好,所以想写把这个好的方法js记录下来,以便以后的参考. 一:先上图,了解大概的样子,如下图 ...
- webapp检测安卓app是否安装并launch
1. cordova插件 1)查看所有已安装的安卓app https://www.npmjs.com/package/cordova-plugin-packagemanager A simple pl ...
- Object对象的浅拷贝与深拷贝方法详解
/* ===================== 直接看代码 ===================== */ <!DOCTYPE html> <html> <head& ...