Logo

SharePoint REST API – 概述

photo

2021年04月20日

博客地址: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/titleGET 
获取网站中所有的列表listsGET 
获取单一列表的元数据lists/getbytitle(‘listname’)GET 
获取一个列表的项目集合lists/getbytitle(‘listname’)/itemsGET 
获取文档的指定属性(获取文档标题)lists/getbytitle(‘listname’)?select=TitleGET 

创建一个列表:

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,访问原地址有更多的学习资源可以了解。

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
所有附件
该文章没有附件.
本文为原创文章,请注意保留出处!

前言  SharePoint2016如约而至,之前也装过预览版,但是这次是正式版,还是分享一个完...SharePoint2016图文安装教程

热门文章

Adobe Acrobat Pro 激活 这里记录了一些AdobeAcrobat的激活教程和组件。浏览量:1,987 作者:Pastore Antonio
1830 浏览量
“sudo: apt-get:找不到命令”的解决方法 Linux系统:CentOS7原因分析:这是由于CentOS的软件安装工具不是apt-get,而是...“sudo:apt-get:找不到命令”的解决方法 作者:Pastore Antonio
1540 浏览量
一个不可思议的一天 上周五可以说是我人生中的梦魇……因为时间没安排好,为了一个10几分钟的会议,打的花了100多。然...一个不可思议的一天 作者:Pastore Antonio
1532 浏览量
Win10中使用cmd命令快速安装telnet服务 Win10中不能够使用Telnet的主要原因是由于系统默认情况下是没有安装telnet服务的,所以我...Win10中使用cmd命令快速安装telnet服务 作者:Pastore Antonio
1525 浏览量
Windows Server IIS+ARR反向代理(配置反向代理服务器) 1.概念说明:反向代理反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相...WindowsServerIIS+ARR反向代理(配置反向代理服务器) 作者:Pastore Antonio
1518 浏览量