OData简介

说自 WCF Data Service ,不得不说之凡 OData。对于一个标准的 Web
服务,它往往会供了一部分效能,比如说:订货、退货这些,然后使用者通过HTTP协议来运这些功能。这是面向服务的中坚思想,然而面前服务来局部毛病,很多早晚,没法准确预测到用户用什么。因此总是要不断地添新的接口,不断地改返回的对象。

别一样种植办法是所谓的资源为导向的架(ROA),暴露Web服务之资源,并且用户能够针对各种针对资源进行实时的询问,具有表现多少与构成数据的力。类似于采用
SQL 在数据库中询问数据。唯一的别是,ROA你通过URL创建查询。

OData是一个商量,规定公开数据的Web服务之性状。下面就段话是OData的概念

Open Data Protocol
(开放数据协议,OData)是用来查询及创新数据的等同种植Web协议,其提供了将存在吃应用程序中之数暴露出来的法门。OData用且构建于众
Web技术之上,比如HTTP、Atom Publishing
Protocol(AtomPub)和JSON,提供了由各种应用程序、服务及储存库中访问信息的能力。OData为用来打各种数据源中暴露和访问信息,
这些数据源包括但非压制:关系数据库、文件系统、内容管理体系跟民俗Web站点。

OData合计概述

无独有偶而上面所提到的,OData服务通过Web服务来透露所提供的资源。然后你得由此URL访问这些资源。
OData
协议指明了怎样通过HTTP来查询数据。基本原则是,你可以输入某些带参数的 URL
来对资源拓展询问。

下是片您得应用的 OData 公共服务,更多可利用的 OData
服务,你可以经访 OData 的官网来抱。

  • http://services.odata.org/WebSite/OData.svc/
  • http://services.odata.org/OData/OData.svc/
  • http://services.odata.org/Northwind/Northwind.svc/

每当介绍下 OData 协议进行查询时,将会利用这些公开之 OData
服务。下面坐 http://services.odata.org/Northwind/Northwind.svc/

  为例,在浏览器中输入刚网址,你拿会盼

json 1

从达成图被您得看来该服务提供了
Products、Advertisements、Categories、Suppliers
这些资源。通过输入下面这些 URL 即可对这些资源开展访问。例如:

  • http://services.odata.org/Northwind/Northwind.svc/Products
  • http://services.odata.org/Northwind/Northwind.svc/Categories
  • http://services.odata.org/Northwind/Northwind.svc/Suppliers

这些查询,将会回去该资源的具有因 XML-Atom 格式的数据。例如下图是
Products 的数量。

json 2

格式输出的数

默认的格式是 XML-Atom,当然,你吗可以另外格式,当前还支持 JSON
格式。只要以URL上上加 $format=json 参数,即可获得 json 格式的多寡。

  • http://services.odata.org/Northwind/Northwind.svc/Products?$format=json
  • http://services.odata.org/Northwind/Northwind.svc/Categories?$format=json
  • http://services.odata.org/Northwind/Northwind.svc/Suppliers?$format=json

json 3

选择字段  

默认情况下,是碰头回所有字段的,但广大时刻,你恐怕才是要取其它的少数字段。例如下面的查询中才回
ID 和 Name 字段。

  • http://services.odata.org/Northwind/Northwind.svc/Products?$select=ProductID,ProductName&$format=json

json 4

展开

多多时,我们尚亟需将涉嫌的导航属性取出来。打开下面的
URL:http://services.odata.org/Northwind/Northwind.svc/$metadata

自打下面这图可以望,Product 还有 Category、Order_Details、Supplier
三个导航属性。

json 5

由此 expand 参数,可以将有关的导航属性的多寡并取出。输入
http://services.odata.org/Northwind/Northwind.svc/Products?$format=json&$expand=Supplier

json 6

自然,你吧足以一如既往不成进行多只导航属性,多只导航属性之间利用“,”分隔,例如:

ttp://services.odata.org/Northwind/Northwind.svc/Products?$format=json&$expand=Supplier,Category

分页

经过 $top 和 $skip 参数,可以进行分页显示,例如:

http://services.odata.org/Northwind/Northwind.svc/Products?$format=json&$skip=10&$take=10

过滤

运 $filter参数,可以对数据进行过滤,例如:

http://services.odata.org/Northwind/Northwind.svc/Products?$format=json&ProductId
gt 4

排序

以 $orderby 参数,可以针对数据开展排序,例如:

http://services.odata.org/Northwind/Northwind.svc/Products?$format=json&$orderby=Product 

升序

http://services.odata.org/Northwind/Northwind.svc/Products?$format=json&$orderby=Product
asc

降序

http://services.odata.org/Northwind/Northwind.svc/Products?$format=json&$orderby=Product
desc

相关文章

网站地图xml地图