• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 编程与数据库 > net编程 >

OData的实际应用-通过开放数据协议构建富Internet应用程序(3)

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-06-27点击:
                              

让我们再仔细看看图 2 中的 InitalizeService 方法还进行了什么操作。此方法为服务将提供的两个实体集调用 SetEntitySetAccessRule,并且设置对 AllRead 的访问权限。这告诉服务让两个实体集完全可读,但不允许进行插入、更新或删除。这是控制对服务的访问的极佳方法。WCF 数据服务还支持名为“查询侦听器”的方法,允许服务作者在每个实体集的基础上为服务配置更精细的访问控制。将 Listings.svc 文件设置为项目起始页,并运行项目。这将打开一个浏览器窗口并显示服务文档,如图 3 所示。

图 3 SharePoint 站点的服务文档

OData URI 约定

服务文档列出了服务提供的实体集。请记住,您可以使用强大的 URI 语法(是 OData 协议的可选部分)来访问此服务中的资源。让我们快速了解一下此服务的 URI 语法。若要访问每个实体集的源,您需要将实体集的名称附加到服务的基本 URI 中,例如 http://myhost/Listings.svc/Properties 将指向 Properties 实体集中的一组实体。

还可以使用单个实体的键值来指向该实体,例如 URI http://myhost/ Listings.svc/Properties(0) 将指向 ID = 0 的房产。您可以将关系名称附加到 URI 末尾,以指向此实体与其他实体或实体集的关系,因此 http://myhost/ Listings.svc/Properties(0)/Listings 将指向与 ID = 0 的房产实体相关的一组销售清单。使用此语法,可以浏览关系的很多层级。

URI 还定义了很多可以附加到 URI 的查询选项,以便在一定程度上修改基本查询,其中每个查询选项都定义为名称/值对。例如,附加查询选项 $top=10 后,就将查询限制为仅包含结果中的前 10 个实体。图 4 列出了 URI 语法中所有可用的查询选项。

图 4 OData 查询选项

$top=n 将查询限制为前 n 个实体。
$skip=n 跳过集中的前 n 个实体。
$inlinecount=allpages 在结果中包含集中所有实体的计数。
$filter=<表达式> 可以用表达式限制查询返回的结果(例如:$filter=Status eq 'Available' 将结果限制为具有 Status 属性且此属性值为 Available 的实体)。
$orderby=<表达式> 按照实体的一组属性对结果进行排序
$select=<表达式> 指定要返回的实体的属性子集。
$format 指定要返回的源的格式(ATOM 或 JSON)。此选项在 WCF 数据服务中不受支持。

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ