asp.net - 将 OData 与 Web API 结合使用有什么优势?

标签 asp.net asp.net-web-api

我已经在使用标准的 WebAPI 并将 JSON 对象返回给我的客户端。现在我看到了一个返回 OData 的应用程序。

如果我不想从浏览器中运行的我自己的客户端以外的任何东西查询我的数据,有人可以解释我是否有任何理由使用 OData。我可以通过使用 OData 获得优势吗?

最佳答案

如果您只在自己的浏览器应用程序中使用您的数据,那么在您的情况下使用 OData 的优势很少:

  • OData 能够提供有关您的服务接口(interface)的元数据,这些元数据可用于生成客户端代码以访问服务。因此,如果您需要创建大量客户端类,这可以加快您的流程。另一方面,如果您可以在服务器和基于 ASP.NET 的客户端之间共享您的类,或者如果您只有几个类,那么这可能与您的情况无关。
  • 在您的情况下,另一个更大的优势是支持针对服务数据的通用查询。 OData 支持 IQueryable这样您就可以在客户端决定如何过滤服务提供的数据。因此,您不必实现各种操作或使用查询参数来提供过滤数据。这也意味着,如果您的客户端需要一个新的过滤器,您很可能不必更改服务器,只需在客户端提出查询即可。可能的过滤器包括用于过滤数据的 $filter 表达式,以及在分页数据时有用的操作,如 $skip 和 $top。有关 OData 和查询的详细信息,请参阅此 link .

  • 有关 OData 和 Web API 的完整概述,请参阅 link .

    关于asp.net - 将 OData 与 Web API 结合使用有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22828319/

    相关文章:

    c# - 尝试使用 LINQ 以数据库字段作为参数获取不同的值

    c# - ajax回发后html控件消失

    c# - 在 N 层应用程序中配置 Automapper

    WebApi 中的 C# await/async,有什么意义?

    不依赖 IIS 的 ASP.NET Web API 应用程序

    c# - 支持 https 的 Owin 自托管控制台应用程序(无 Web API,无 SignalR)

    c# - 克隆 AJAX TabPanel

    客户端或服务器上的 ASP.NET 缓存

    c# - 这么多的数据访问选项,用什么?

    asp.net-web-api - 存储owin oauth承载 token