博客地址:http://blog.csdn.net/FoxDave

本篇主要讲述SharePoint REST中OData的查询操作。SharePoint REST服务支持很多OData查询字符串操作,可以对你请求的数据进行查询、筛选和排序。

查询返回字段

使用$select查询操作来指定对于既定的列表或列表项(其他集合类的SharePoint数据也可)需要返回哪些字段。可以使用$select=*来返回所有可用的字段。

一般来说,如果不指定$select参数,那么默认REST服务会返回所有可用的字段。然而在一些情况下,一些SharePoint对象包含了非常耗费资源的属性。为了优化REST的性能,这些属性不会包含在默认的查询中,因此必须进行显示声明。比如,SPWeb.EffectiveBasePermissions属性默认是不返回的,必须在$select查询选项中显示声明。

而且,你还可以指定来自其他列表的查阅项字段,如下例:

http://server/site/_api/web/lists('guid')/items?$select=Title,Products/Name&$expand=Products/Name

查询要返回的列表项

使用$filter参数来指定需要SharePoint REST服务返回哪些值,具体参照本文后面的部分。

查询单值查阅项字段

单值查阅项字段在SharePoint REST服务中通常用两个独立的字段来表示。一个表示真实的字段值,另一个表示字段名称。

查询用户

在SharePoint REST服务中,用户使用友好名称(显示名称)来表示,所以不能用域名去做查询。注意用户查询不支持基于Membership形式的认证,并且不支持使用Current操作符使用当前用户的ID来做查询。

查询多值查阅项字段和用户

不支持。

返回结果排序

使用$orderby查询选项来指定如何对返回的结果集进行排序。如果要对多个字段进行排序,使用逗号分隔。你也可以通过在查询中指定asc和desc关键字来指定是升序还是降序排序。

对返回的结果进行分页

使用$top和$skiptoken查询选项来查询返回结果的子集。注意$skip查询选项不支持SharePoint列表项的查询。$top选项跟SQL一样,用来指定你想返回结果集的前多少条信息,比如top 10:

http://server/site/_api/web/lists('<guid>')/items$top=10

$skiptoken选项用来指定跳过多少条信息之后返回结果。

$skiptoken=Paged=TRUE&amp;p_ID=5

注意这种查询是有序的,举个例子来说,你有一个下一页的操作按钮,当第一次返回1-20条结果到点击下一页返回21-40条结果这个过程中,另一个用户删除了列表项3和16。此时你获得的下一页的返回结果中,跳过了2个列表项。

SharePoint REST服务中支持的OData查询操作符

Supported Not supported
Numeric comparisons Lt Le Gt Ge Eq Ne Arithmetic operators (Add, Sub, Mul, Div, Mod) Basic math functions (round, floor, ceiling)
String comparisons startsWith substringof Eq Ne endsWith replace substring tolower toupper trim concat
Date and time functions day() month() year() hour() minute() second() DateTimeRangesOverlap operator Querying as to whether a date time falls inside a recurrent date time pattern

也可以参见下图

本节就阐述到这里。

注意,由于CSDN恶心的bug,文章的发布时间为草稿的创建时间,所以下一篇文章的位置比较靠前,在这里挂一下链接,之后发的内容会尽量注意一下这点,向读者表示歉意。

http://blog.csdn.net/foxdave/article/details/71055076

最新文章

  1. hdu 1318 Palindromes
  2. 07 JavaWeb
  3. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q94-Q96)
  4. 如何查询centos查看系统内核版本,系统版本,32位还是64位
  5. DIP开放计算平台介绍
  6. git/github初级运用自如 (转)
  7. 用python写刷票程序
  8. iOS之网络数据下载和JSON解析
  9. POJ 2828 Buy Tickets 线段树 倒序插入 节点空位预留(思路巧妙)
  10. Algorithm --&gt; 判读是否是子树
  11. BZOJ_1408_[Noi2002]Robot_数学
  12. PTA 深入虎穴 (正解)和树的同构
  13. COGS2187 [HZOI 2015] 帕秋莉的超级多项式
  14. django RESTful设计方法
  15. linux服务器系统盘坏且系统盘为软raid的修复方法
  16. HTML+css+html5基础+css3须知
  17. testng执行用例失败,再次执行
  18. sbt介绍与构建Scala项目
  19. nginx 开启GZIP、域名指向index.html
  20. HTTP协议以及HTTP请求中8种请求方法

热门文章

  1. H.264开源解码器评测
  2. 参考hadoop
  3. android-------Android Studio使用MAT分析工具遇到的错误
  4. Django中模型层中ORM的单表操作
  5. centos7 --kubeadm安装
  6. python-flask-wtforms组件流程源码
  7. leetcode-algorithms-25 Reverse Nodes in k-Group
  8. python 绝版线程池
  9. Hadoop介绍-2.分布式计算框架Hadoop原理及架构全解
  10. activiti实战系列之动态表单 formService 自定义变量类型