语境:是否可以将我的Web API转换为OData API?
我有以下形式的现有Web API: http://site/api/ {地区} slicer1 =阿尔法& slicer1 =公测&开始时间=有时&结束时间=有时
它在ASP中实现MVC。 API的函数处理参数并将它们提供给SQL查询。成功时,它会返回一个IHttpActionResult和来自SQL的JSON数据。
请注意,API缺少实体模型或实体关系图。它本质上只是一个SQL查询的包装器。
问题:
最近,我开始学习的OData。看起来OData专为URL本身设计,以控制数据的过滤方式,而不是创建自定义SQL查询来过滤。
因此,我想回答我的Web API是否可以转换为OData API,如果是,那么需要做什么OData功能(例如,OData v4功能可能会有用) ?
澄清:
- 我没有任何代码写的,我也没有要求代码作为答案。
- 我在寻找什么OData功能可以启用我的场景(v4功能,操作等等),或者OData和Web API如此不同以至于我的问题没有意义。
- 预计“你为什么问”这个问题 - 我只是对技术上的可行性感兴趣,因为它是一种学习练习。
你提到了“例如,你可以决定使用它的(类型安全的)查询字符串解析功能,并从解析的过滤器树中生成你自己的SQL” - 你知道我在哪里可以找到这个在线例子? – Craig
是的。例如这里:https://github.com/OData/ODataSamples/tree/master/WebApi/v4/NHibernateQueryableSample。这个活页夹的结果是一个NHibernate查询,它几乎看起来像SQL。你可以把它作为一个起点。 – Dejan