SharePoint 2013 REST 以及 OData 基础
这篇文章会介绍:
- 简单的介绍REST,OData
- OData实现细节
- OData在SharePoint 2013中的实现
为什么REST很重要
过去几年基于REST的webservice在IT企业越来越多的被人使用,尤其是跟微软相关的。REST 服务使用起来更简单,使得企业降低了使用门槛。REST服务非常容易的被JS和JQuery类库的调用。过去几年中,OData很快的变成了最新的数据访问API,他之所以如此受欢迎,因为他是第一个主流的,为基于Http的客户提供的API。Odata API为 通过网络为CRUD 操作提供了标准化的API,如Get,Post 以及Put,OData 服务也在网上越来越流行。 OData服务的例子如:NeFlix,Dellas,Azure。Excel 2010,Excel 2013是可以调用任何以OData作为数据源的应用程序。
这里面我们介绍一些学习OData时会遇到的关键点,并且了解OData是怎么工作的
OData Resource |
Is Described in an Entity Data Model by |
Collection |
Entity Set A navigation property on an entity type that identifies a collection of entities |
Property of an entry |
Primitive or Complex Entity Type Property |
Complex Type |
Complex Type |
Link |
A navigation Property defined on an Entity Type |
Service Operation |
Function Import |
Odata的实现细节
OData的主要目的是把CRUD操作映射到Http行为上,例如你可以:
- 用Http Get来实现查询
- 添加新的实体,如ListItem或者数据库记录通过Http Post
- 用Http Put或者Http Merge来实现更新
- 用Http Delete来实现删除的功能
这些行为也暗示了你可以通过http,用CURD来操作数据的方式。
Http Merge相对于Http Put的优势在于你可以只改变其中的某些数据,而让其他的数据保留原有的值。 Http Put也会把数据重置为默认值如果你没有显示的指定它。
作为一个开发,如果想要知道怎么用OData,你首先需要了解OData的地址是如何构造的,每一个Uri都有3个重要的部分:
Service root Uri
是一个访问网络的入口,如.svc文件
Resource Path
它表示了指定的对象,如SiteCollection,List或者listitem,
Query string option
第三部分是查询参数,让你能够处理一系列的行为,如查询,排序等。
OData在SharePoint2013中的实现
Service Root Uri包含了目的站点的url 加上client.svc的相对于服务器的Url,
Resource Uri,指定了要操作的目的对象,如Site,List或者ListItem。
因此你可以通过这样的Url
http://contoso/_vit_bin/client.svc/Web
来访问一个Web,这个地址有另外一个别名
这两个地址都是等价的。输入上面的地址后,你会看到如下信息:
下面的路径展示了3中访问SharePoint资源的路径:
_api/web/lists
_api/web/lists/getByTitle('Annoucements')
_api/web/getAvailableWebTemplates(lcid=1033)
下面一部分例子会为大家讲述如何简单的调用REST服务,你只需要一能够通过SharePoint 2013的认证的浏览器。你可以通过输入基于REST的地址,来使用Http Get操作来进行查询。这个提供了一种快速的方式,通过拼接Url,来查询,过滤,排序内容。
下面的演示就不多说了,在浏览器中输入下面的Url试试你看到的数据吧:
http://contoso.com/_vti_bin/client.svc/Web
http://contoso.com/_api/Web/Lists
http://contoso.com/_api/Web/lists?$select=Title
http://contoso.com/_api/Web/lists/getbytitle('Annoucements')/Items
http://contoso.com/_api/Web/lists/getbytitle('Annoucements')/Items?$select=Title,Body
http://contoso.com/_api/Web/lists/getbytitle('Annoucements')/Items?$filter=startswith(Title,'P')
怎么样,这种方式来访问SharePoint是不是简单了很多?平时开发中节省了不少的时间把?
参考文章:
https://msdn.microsoft.com/en-us/library/office/jj164022(v=office.15).aspx#WritingData
SharePoint 2013 REST 以及 OData 基础的更多相关文章
- SharePoint 2013的REST编程基础
1. SharePoint 2013对REST编程的支持 自从SharePoint2013开始, SharePoint开始了对REST 编程的支持,这样除了.NET , Silverlight, Po ...
- [MSDN] 使用 SharePoint 2013 中的 JavaScript 库代码完成基本操作
MSDN:http://msdn.microsoft.com/zh-cn/library/jj163201.aspx 了解如何编写代码以在 SharePoint 2013 中使用 JavaScript ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第1章节--SharePoint 2013 介绍 SharePoint 2013 平台
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第1章节--SharePoint 2013 介绍 SharePoint 2013 平台 SharePoin ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第1章节--SharePoint 2013 介绍 处理开发者需求
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第1章节--SharePoint 2013 介绍 处理开发者需求 SharePoint本质上是一个平台.你 ...
- SharePoint 2013 create workflow by SharePoint Designer 2013
这篇文章主要基于上一篇http://www.cnblogs.com/qindy/p/6242714.html的基础上,create a sample workflow by SharePoint De ...
- 实现一个基于 SharePoint 2013 的 Timecard 应用(上)
在 SharePoint 2013 上面实现一个 Timecard 应用的想法来自一个真实的需求,而实现的方案在我脑海里面盘旋已经很久了,终于这几天准备安排点儿时间将它实现出来. “ We start ...
- SharePoint 2013 入门教程
以下文章是自己在学习SharePoint的过程中,不断积累和总结的博文,现在总结一个目录,分享给大家.这个博客也是自己从SharePoint入门,到一个SharePoint开发的成长记录,里面记录的都 ...
- SharePoint 2013 托管导航 无法被开启的解决办法
在阅读了园子中霖雨的一片博文<SharePoint 2013 托管导航及相关配置>之后,非常想尝试一下SharePoint 2013 中的这个新功能,但是我的网站集包括样式是从2010升级 ...
- SharePoint 2013 图文开发系列之WebPart
这是我们介绍SharePoint开发入门的第一篇,在这一篇里,我们会介绍SharePoint开发的几个关键物理路径,一些开发技巧和最基础的WebPart开发. 开发工具 在SharePoint 201 ...
随机推荐
- oracle 客户端重新安装遇到的问题
前一阵,因为把ORACLE客户端的密码忘记了,在网上也找了好多方法,试着不重新安装找回密码,可是都行不通,没有办法重新装.安装时遇到一些问题,因为我是WIN7,64位系统,安装的oracle11g64 ...
- 论垃圾邮件危害性及U-Mail邮件系统必杀技
阿里集团今年“双十一电商节”又一次突破了去年营收,创造了新的历史.相信在电商日益渗入生 活的今天,你在日常工作中一定收到过某店铺发来的推广邮件,的确,邮件如今被电商广泛应用于消费者购物各环节,但是在其 ...
- Jquery easyui中的有效性检查
使用过程中的一积累,备查. EasyUI 验证框使用方法: //*************************** missingMessage:未填写时显示的信息 validType:验证类型见 ...
- Selenium2+python自动化25-js处理日历控件(修改readonly属性)
前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...
- Python全栈--7.1--字符串的格式化
Python字符串格式化:(百分号/format) 1.百分号的方式: %[(name)][flags][width].[precision]typecode (name) 可选,用于选择指 ...
- SeleniumIDE初级入门
Selenium IDE:它是使用Javascript 脚本语言与CS端的DOM对象进行交互,并且为修改测试用例提供了接口.录制功能是它最大的亮点,录制功能可以让测试人员对需要进行测试的功能流程进行 ...
- 第三十七章 springboot+docker(手动部署)
一.下载centos镜像 docker pull hub.c.163.com/library/centos:latest docker tag containId centos:7 docker ru ...
- 学习springMVC框架配置遇到的问题-数据写入不进数据库时的处理办法
配置完了,运行,数据写入不到数据库中,就应该想UserAction 中的handleRequest()方法有没有进去,然后就设置断点.如果发现程序没有进去,就再想办法进去.
- Python-Windows下安装BeautifulSoup和requests第三方模块
http://blog.csdn.net/yannanxiu/article/details/50432498 首先给出官网地址: 1.Request官网 2.BeautifulSoup官网 我下载的 ...
- Exception loading sessions from persistent storage 这个问题的解决
现在经常在做一个项目时重启时会报: 严重: Exception loading sessions from persistent storage的问题. 这个问题的原因是tomcat的session持 ...