【部分内容转自知乎 https://zhuanlan.zhihu.com/p/56639241】
之前工作中没有遇到odata , 这个概念在学校里可能不常见,在业界有部分公司会使用该协议,尤其是在与微软进行合作的公司和部门里基本上是需要掌握的。
OData协定,英文全名是Open Data Protocol(OData),它是一个开源的协定,以简单和标准的方法,来建造或消除可查询和可操作的RESTful API。它创始于2007年的微软公司。版本1.0, 2.0, 和3.0发行在微软开放规格承诺书(Microsoft Open Specification Promise)。4.0版交由OASIS在2014年3月定出标准。2015年4月,OASIS进一步送出OData v4和OData JSON格式,v4被ISO/IEC JTC 1争取成为国际标准
举个例子:假设A组织,B组织都实现了Restful API来通过工号查询人员信息,因为没有统一的规范。
A的API 可能是这样:https://A/api/person/001
B的API 可能是这样:https://A/api/person/id=001
第三方客户端在实现远程调用的时候就必须考虑这些API的差异,分别查看A,B的API文档。
如果有个权威性协议作为规范做指导,规定这个API应该实现成下面这样,那么第三方客户端也只需按照这个标准去调用远程API,而不用查看A,B的API文档:
使用举例: 假设我的 baseurl = abc.com/api/data/v9.2
- 查询一个名字叫 dog 的entity 集合
baseurl/dogs - 查询这个entity 集合中某个特定的entity, 需要用到能够唯一识别一个enitity的主键以及这个主键的值
baseurl/dogs(uniqueid=XXX) 或者 baseurl/dogs(XXX) - 查询符合一些条件的entity 集合
baseurl/dogs?$filter= name eq 'biff'
关于这里的eq可以从这里看到所有支持的关键字 https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview
基本上有 eq ne gt ge lt le and or notendswith in
官方文档 https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview
参考一个文档,总结了一些基本的操作 https://www.cnblogs.com/ellie-test/p/7027462.html
网友评论