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地图