将OData与Web API一起使用有什么好处?

12 asp.net asp.net-web-api

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

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

Mar*_*kus 8

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

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

有关OData和Web API的完整概述,请参阅此链接.