OData使用笔记

OData是一种开放协议,用于创建和消费查询和协作的RESTful API。它支持通过GET请求进行查询、分页、排序和过滤。例如,使用$offset和$limit进行分页,$filter进行条件查询(如eq, like, gt, lt),并用$orderby进行排序(asc或desc)。此外,查询结果可以返回JSON对象,包含items数组和可选的count属性以显示总数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OData 协议

OData一个开放的协议以一种简单的规范方式来创建和消费可查询和可协作的RESTfulAPIS。

GET请求:查询,分页,排序在Request请求中以键值对的方式传递。

offset,$limit 完成分页查询

xxxxxx.com?$offset=0 => 偏移量为0。 xxxxxx.com?$limit=15 => 每页个数为15。 xxxxxx.com?$offset=0&$limit=15 => 偏移量为0,每页个数为15。

(1)操作符
2、$filter 完成条件查询
eq 表示『相等』; xxxxxx.com?$filter=age eq 10 => 查询age等于10的记录
like 表示『模糊查询』; xxxxxx.com?$filter=name like xxx => 查询对name进行模糊匹配的记录
gt 表示『大于』; xxxxxx.com?$filter=age gt 10 => 查询age大于10的记录
lt 表示『小于』;xxxxxx.com?$filter=age lt 10 => 查询age小于10的记录
(2)逻辑组合
and 表示『且』;xxxxxx.com?$filter=name like xxx and age eq 10 => 查询age等于10且对name进行模糊匹配的记录
or 表示『或』;xxxxxx.com?$filter=name like xxx or age eq 10 => 查询age等于10或对name进行模糊匹配的记录
总结:格式是 单个条件=属性名 操作符 值 ;$fitler= 单个条件 [逻辑 单个条件...]

3、$orderby 完成排序查询

desc 降序;xxxxxx.com?$orderby=createdAt desc => createdAt 字段倒序
asc 升序;xxxxxx.com?$orderby=updatedAt asc => updatedAt 字段增序
总结:格式是$orderby=属性名 asc|desc

4、返回结构
返回JSON对象,结构体如下:

默认情况,无count(总数)

{ "items":[ ...... ] }

需要count,则代码查询条件

$count=true;xxxxxx.com?$count=true

{ "items":[ ...... ], "count":10 }

使用jqGrid展示OData服务数据时,可以使用以下参数来进行配置和查询操作。 1. url:OData服务地址,例如:http://services.odata.org/V4/Northwind/Northwind.svc/Customers。 2. datatype:数据类型,支持"json"、"xml"和"jsonp"。如果使用jsonp,需要设置jsonp参数为"$callback"或其他指定的回调函数名称。 3. mtype:HTTP请求类型,支持"GET"、"POST"等。默认为"GET"。 4. colNames:列名称,可以是一个字符串数组或逗号分隔的字符串。例如:"colNames:['Name', 'Address', 'City']"。 5. colModel:列模型,需要指定每个列对应的OData实体属性名称、数据类型、格式化函数、排序函数等。例如: ``` colModel:[ {name:'Name',index:'Name', width:100}, {name:'Address',index:'Address', width:200}, {name:'City',index:'City', width:100} ] ``` 6. loadonce:是否在第一次加载数据后缓存数据。默认为false,即每次请求数据都会从服务器获取。 7. sortable:是否允许列排序。默认为true。 8. pager:分页控件的ID,例如:"pager"。 9. rowNum:每页显示的行数。默认为20。 10. rowList:每页显示行数的选项列表。默认为[10,20,30]。 11. sortname:默认排序的列名。 12. sortorder:默认排序的方式,支持"asc"和"desc"。 13. search:是否显示搜索框。默认为false。 14. postData:发送到服务器的额外参数,可以是一个对象或一个函数。例如: ``` postData:{ $filter:"Name eq 'John'", $orderby:"City", $top:10 } ``` 以上是一些常用的jqGrid参数,可以根据具体需求进行配置。同时,还可以使用OData查询操作符(如$filter、$orderby、$top等)来限制返回的数据集合,实现更精准的数据查询和展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值