首页 文章

是否可以将我的Web API转换为OData API?

提问于
浏览
0

Context

我有一个以下形式的现有Web API:http://site/api/ ?slicer1 = alpha&slicer1 = beta&starttime = sometime&endtime = sometime

它在ASP MVC中实现 . API的功能处理参数并将它们提供给SQL查询 . 成功时,它返回带有来自SQL的JSON数据的IHttpActionResult .

请注意,API缺少实体模型或实体关系图 . 它本质上只是SQL查询的包装器 .

Question

最近,我开始学习OData . 看起来OData是为URL本身设计的,用于控制数据的过滤方式,而不是创建自定义SQL查询进行过滤 .

因此,我想知道我的Web API是否可以转换为OData API,如果是这样,我需要做什么OData功能(例如,OData v4功能可能有用)?

Clarifications

  • 我没有编写任何代码,也没有要求代码作为答案 .

  • 我想知道OData功能可以实现我的场景(v4功能,操作等等),或者OData和Web API是如此不同,以至于我的问题没有意义 .

  • 预测"Why are you asking"这个问题 - 我只是对技术可行性作为学习练习感兴趣 .

1 回答

  • 1

    您可以切换到OData API,但是如果您没有实体,即没有 IQueryable 来查询,那么您虽然不是很难 - 我们在我正在进行的项目中做到了 .

    您还必须问自己,您希望切换到OData的程度 . 例如,您可以决定只使用其(类型安全的)查询字符串解析功能,并从解析的过滤器树生成您自己的SQL(如上所述) .

    另一方面,拥有完全成熟的OData API也可以规定响应格式符合标准 . 这意味着您可以使用OData感知工具(例如Excel,KendoUI Grid等)开始连接API . 我不知道这是否会给你的用例带来任何好处 .

    你的问题

    我需要做什么OData功能

    对我来说并不完全清楚 . 没有OData功能可以帮助您从Web API迁移到OData API . OData只是一组标准化查询(CRUD)和响应格式 . 您也可以通过使用开箱即用的Web API工具自行实现所有的OData,但可能您需要使用Web API OData包 .

    对你来说最重要的问题是问自己使用OData有什么好处 .

相关问题