从 HTTP 请求到 SAP RAP 业务服务,彻底理解 OData 在 SAP 技术栈中的位置
在 ADT 里打开一个 RAP Service Binding,激活服务,再从 Preview 启动一个 SAP Fiori Elements 页面,浏览器的 Network 面板很快就会出现一串请求。里面通常能看到$metadata、实体集合名称、$select、$filter、$orderby、$expand,有时还会看到$batch。页面上的表格、Object Page、Value Help、导航关系,看起来属于 SAPUI5 或 Fiori Elements,真正把前端和 ABAP 后端连接起来的协议层,却经常就是 OData。
对于长期做 ABAP 开发的人来说,OData 很容易被理解成一种 SAP Gateway 接口技术。这个认识不算错,但范围小了一些。OData 并不是 SAP 自己定义的一套私有接口,而是一套建立在 Web 标准之上的开放数据协议。OASIS 对 OData 4.01 的定义非常明确,OData 用来创建基于 REST 的数据服务,数据资源通过 URL 标识,由数据模型描述,Web Client 使用普通 HTTP 消息读取、创建和修改这些资源。OData 4.01 已经成为正式的 OASIS Standard。
这也解释了为什么 OData 在 SAP 世界里生命力如此旺盛。从早年的 SAP Gateway Foundation,到 SAP S/4HANA,再到今天的 ABAP Cloud 和 RAP,OData 始终承担着一个很稳定的角色,我们在 ABAP 里建立业务模型,再以标准化的 Web 协议把这个模型暴露给 SAP Fiori、移动