云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

服务器_连接服务器失败_免费

小七 141 0

服务器_连接服务器失败_免费

本博客是解释SAP云平台后端服务细节

今天的细节是数据模型和服务定义的分离

到目前为止,我们一直将CDS服务定义为顶级元素,并定义了服务内部的实体。记得?我在教程系列的开头提到:

CDS允许定义1)数据模型和2)服务以及3)UI。可以在一个文件或多个文件中完成。另外,发发淘客助手,可以同时定义数据模型和服务。

为了简单起见,我们一直在这么做。

下面的代码片段显示:一步定义一个服务("BusinessPartnerService")和数据模型("BusinessPartnerEntity"):

现在让我们看看如何使用单独的数据模型和服务定义创建一个CDS文件。下面的示例与上面的代码片段相同(只有一点不同):

您可以看到:实体被定义为顶级元素,服务也被定义为顶级元素。服务定义指的是实体

"投影"是什么意思?

投影意味着这不是一个新的实体定义。在后端,不会生成新的数据库表。相反,它反映为数据库视图这是完全有道理的,因为我们不想复制要存储的数据。此外,OData服务在视图而不是表上运行是有意义的。

有一点不同…

您注意到我们实际上正在重命名实体吗?

这就是为什么我要问

在服务定义中,我们将实体定义为"BusinessPartners",商城返利系统,它指向"businesspartnerrentity"这样,我们就可以纠正数据模型实体("BusinessPartnerEntity")的错误命名。记住:CDS元素"service"用于定义哪些数据是公开的,以及它应该是什么样子。在后端服务驾驶舱中创建API后,OData端点将使用服务定义中给出的实体名称。

什么?我从不喜欢这样的抽象描述…

好吧,举个例子:

https:///odatav4/DEFAULT/MYAPI/BusinessPartners

我能定义多个实体吗?

当然可以。

我可以定义多个服务吗?

嗯……是的……但是……

但是什么?

好吧,事实是:CDS允许定义引用同一数据模型的多个服务。但是,它将被后端服务忽略。

这样的模型会有一些意义:

注意:后端服务不支持2个服务定义这很有道理:后端服务帮助您根据模型创建API,以及测试和维护API。因此,每个CDS文件只需要一个API。因此,将上述示例提供给后端服务时,大数据与数据挖掘,靠谱云服务器,将只考虑其中一个服务定义。

下面的示例说明了在分离数据模型和服务定义时可以利用的更多功能。

下面的示例模型包含:一个自定义类型,一个业务伙伴实体和一个服务。

该服务公开了两个实体集合,每个集合具有不同的方面,但都基于相同的数据("BusinessPartnerEntity")。

值得注意:

在后端服务中创建了一个API后,基于上述CDS模型,自助建站开发,生成的OData模型如下:

值得注意:

我们有两个实体集,如预期的那样使用重构的实体名称,任何地方都看不到后缀"entity"性能如预期:供应商:排除的属性不再存在供应商:自定义类型已展平客户:新的名字已经考虑过了,这里只提到了物业客户:扁平化的自定义类型已替换为一个属性别名("companyHeadquarters")

在后端服务驾驶舱中,转到测试工具

转到"供应商"部分

对"供应商"集合执行GET请求:->空

创建一个"供应商"条目。->所有正常

对"供应商"集合执行GET请求:->创建的条目在那里

现在转到"客户"部分

对客户集合执行GET请求->只有一个条目->它有空属性->只有关键值在那里,它是先前创建的供应商

的值,正如预期的那样,并显示两个实体集都在同一个数据库表上运行

在一天结束时(今天),您已经了解了在CDS文件

中分离数据模型和服务定义的好处,而给出的示例并非如此很适合企业级使用,我相信它是该机制工作原理的一个很好的例子。是的,谢谢

SAP帮助中的CD文档此处和此处

教程:概述上一教程:自定义类型下一个教程:名称空间和上下文