OData是什么
Open Data Protocol(OData),程序数据库格式标准化的开放数据协议,以简单和标准的方法,建造或消除可查询和可操作的RESTful API,是用来查询和更新数据的一种Web协议,其提供了把存在于应用程序中的数据暴露出来的方式。
OData产生契机
已知REST只是一种设计Web服务的思想,不是一种标准化的协议,因此会导致各家公布的RESTful API在统一通用方面的欠缺。OData就是为了弥补这种欠缺而被提出来的标准协议。
实施OData
如果需要实施OData服务,需要完成以下四个部分:
-
OData模型
定义数据结构,一般发生在后端系统。
-
OData协议
支持CRUDQ(创建,读取,修改,删除,查询)功能,数据的传输可以使用XML或者JSON。
-
OData客户端库
保证了客户端能够使用库函数方便的访问OData服务。注意,客户端库并不是必须的,但是尽量有,这样可以节省大量的编码工作。
-
OData服务
可以最终被客户端访问的服务。
OData服务的结构
- 服务文档(Service Document)
- 服务元结构文档(Service Metadata Document)
以上两种文档包含了:
- 实体(Entity)
- 实体类型(Entity Type)
- 实体集合(Entity Set)
- 属性(Property)
- 导航属性(Navigation Property)
- 关联(Association)
OData的使用
一、函数的使用
- contains(包含)$filter=contains(Name,'momo')
- not contains(不包含)
- startswith(以xx开头)
- endswith(以xx结尾)
- length(字符长度等于x)
- indexof(字符长度等于x索引为n开始包含xx字符)
- replace(替换)
- substring(从第n个字符开始)
- tolower(转换为小写)
- toupper(转换为大写)
- trim(去空格后)
二、$filter运算符
eq(等于);ne(不等于);gt(大于);ge(大于等于);lt(小于);le(小于等于);and(且);or(或);()(分组)
三、$orderby排序
http://localhost:5000/userInfo?$orderby=name desc,EventName asc
四、$top,skip,inlinecount客户端换页
http://localhost:5000/userInfo?$top=5&$skip=1&$inlinecount=allpages
五、$count数据量
六、$expand嵌入内容
七、$format格式化
八、$select查询字段的列表(和sql中select后面的表达式一样)