为什么 Web API 应该启用 OData?

Why a web API should be OData enabled?

我正在创建一个 Web API 以从 SAP 服务中提取数据。我的团队领导要我制作一个支持 odata 的网站 API。我读了几篇文章,但没有充分的理由可以证明如果我们将 asmx 服务消费到网络中,odata 有很大的优势 API 而后者又将被 Sharepoint 客户端使用。

BI 服务API 允许从 SAP 系统中以标准化形式提取和直接访问数据。这可以是 SAP 应用程序系统或 SAP NetWeaver BI 系统。数据请求由 SAP NetWeaver BI 系统控制。有关您的更多信息,请访问:http://help.sap.com/saphelp_erp60_sp/helpdata/en/46/b861bb1ba01825e10000000a1553f6/content.htm

我建议选择 OData 而不是一般的 WebApi 有几个原因:

  1. OData 提供了一定程度的可发现性,这是通用 WebApi 解决方案开箱即用所不具备的。例如,如果您有一个实体 "Widget",可以查询 Odata 根,它将与您公开的所有其他实体一起列出。我可以根据经验告诉您,回到 WebApi 项目并试图记住所有内容的名称是一件痛苦的事情,而这确实很有帮助。
  2. OData 提供了一定程度的基本可查询性,而无需使用一堆管道代码。如果你想按颜色过滤你的小部件,你不需要编写一堆代码将它传递到你的数据层,只需在查询字符串中添加一些东西,例如“$fitler=color eq 'red'”。也适用于分页等。除此之外,设置限制(例如最大结果数)相对容易,以防止出现许多问题。