OData (开放数据协议)

OData 用于定义构建和使用 RESTful API 所需的最佳实践

  • OData 提供扩展功能,以满足 RESTful API 的任何自定义需求。
  • REST 代表 Representational State Transfer。
  • 它依赖于无状态,客户端 - 服务器,可缓存的通信协议。几乎在所有情况下,都使用 HTTP 协议。
  • REST 被定义为用于设计网络应用程序的体系结构样式。
  • OData 可帮助您在构建 RESTful API 时专注于业务逻辑,而无需担心定义请求和响应头,状态代码,HTTP 方法,URL 约定,媒体类型,有效负载格式和查询选项等的方法。
  • 用OData就是帮助你将焦点汇聚在业务逻辑的呈现上,而不用费心去考虑前台的展现层和后台业务逻辑层如何交互的细节。

OData服务生命周期

OData 服务生命周期包括 OData 服务的范围。

  • 激活 OData 服务。
  • 维护 OData 服务。
  • 维护模型和服务,直至清理元数据缓存。
  • RESTful 应用程序使用 HTTP 请求发布数据以创建、更新、读取数据、删除数据。REST 对所有四个 CRUD(创建 / 读取 / 更新 / 删除)操作使用 HTTP。
  • REST 是 RPC(远程过程调用)和 Web 服务等机制的轻量级替代方法。

OData设置

在manifest.json中配置服务器:

"sap.app": { ... "ach": "CA-UI5-DOC", 
    "dataSources": {
        "invoiceRemote": { 
            "uri": "https://services.odata.org/V4/Northwind/Northwind.svc/",   
            "type": "OData",     
            "settings": {      
			 "odataVersion": "2.0"    
            } 
        } 
    } 
    "sap.ui5": { ... "models": {
        ...   "invoice": {
            "dataSource": "invoiceRemote"   
        } 
    }
}

SAP 对 OData 接口的实现

SAP Gateway

  • SAP Gateway 是一天基于 ABAP 开发的 OData 服务器端组件
  • SAP Gateway 可将 ABAP 数据字典元素转为 OData 实体,通过图形化的建模工具创建 OData 服务
  • SAP Gateway 将用户对不同实体的不同调用转换为调用不同的 ABAP 方法,有用户实现具体的调用代码
  • SAP Gateway 可以与 ABAP 中已经存在的相关服务进行集成,重用已有的表,视图,函数等对象

HANA XS Engine

  • HANA XS Engine 具有将 HANA 中的表、信息模型开放为 OData 服务的能力
  • 使用声明式的语法,快速声明 OData 服务
  • 在处理数据更新逻辑时,允许通过存储过程或 XSJS 函数处理用户输入的数据