
看到 SAP 官方示例里的/IWBEP/TEA_BUSI_PRODUCT时,一个很容易被忽略的问题会冒出来。一个复杂业务对象如果涉及产品、订单、合作伙伴、定价、库存、附件等几十种 Entity Type,是不是必须把所有东西都塞进同一个 OData V4 Service 的$metadata里。在 SAP Gateway Foundation 的 OData V4 设计里,答案并不是这样。SAP 为此引入了Service Group和Cross-Service Reference两个紧密相关的概念。它们解决的不是简单的 URL 跳转问题,而是怎样把一个很大的业务模型拆成多个粒度更细的 OData Service,同时仍然允许这些服务之间保持语义上的 Navigation,并在运行时协同完成请求。这套设计放在今天讨论Clean Core、模块边界、服务粒度以及前端按需加载时依然很有价值。SAP 当前的 Gateway Foundation 文档明确说明,OData V4 引入Service Group,主要就是为了处理高度关联或者层次很深的后台业务对象模型。同一个Service Group中的多个服务属于同一业务模型,并共享类似的 routing、authorization 等运行环境条件。服务一旦被分配进 Service Group,就可以作为该 Group 的一部分被客户端访问。SAP 还明确支持组内跨服务的GET、带$expand的