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

数据库服务器_阿里云api_返利

小七 141 0

本博客是一系列教程的一部分,详细解释了SAP云平台后端服务的用法。

如您所知,后端服务允许基于给定模型创建API。此类模型的类型可以是CDS、edmx或openAPI。你可能想知道为什么我们要把重点放在教程系列的CD上。原因是CD很强大。

在之前的博客文章中,我们已经学习了一些CD魔术管理的关联以及运行时关联的隐式重定向。

在本博客中,我们将学习另一个神奇功能:自动密钥生成。

酷,我想这个功能很久了然后您可以直接跳转到解决方案。

背景

在我们前面的示例中,在创建示例数据时,我们使用带有数字的键字段(如"customerID")作为可能的数据类型(整数)因此,大数据网,在创建样本数据时,我们必须确保始终使用一个唯一的数字,这是以前从未使用过的。那当然不太方便。那么我们有什么软件呢?是的,我们想要的是找到一个合适的未使用的号码。或者为我们生成一个唯一的标识符。

解决方案

超级明星来了:

CDS有解决方案,它是

U U I D

数据类型。

有关CD类型的文档,请参阅SAP帮助门户。

在许多情况下,在为数据模型建模时,可以将关键属性的数据类型指定为UUID

示例:

好处

好处是:为这些属性创建条目时,不需要为键指定任何内容。它总是生成的。

测试它为上面的例子创建一个API,你可以像这样创建你的宠物:

{"name":"小猫","物种":"青蛙"}

如您所见,键字段甚至没有在有效负载中指定。即使您要指定任何值,它也会被覆盖。

创建条目时,您甚至可以多次点击"执行"按钮。哇,我一直想这么做这不是问题,物联网水表,因为关键字段总是不同的。但是青蛙的名字会是一样的…拥有许多同名青蛙有什么问题?是的,他们无论如何都不服从……

创作后收集的例子:

缺点

UUID被呈现为超级英雄,怎么会有缺点呢?

我们可以从上面的截图中看到缺点。颜色?

UUID属性的生成值为36个字符长。如果web应用程序打算显示该属性的值,那么这样的值就不太合适、太长而且不可读。因此,如果密钥属性对最终用户隐藏并且仅由计算机处理,则应使用UUID数据类型。

它是如何工作的?当通过viehttppost创建新条目时,OData服务的Java(例如)实现负责生成值。生成步骤和长值这两个方面都可能导致性能缺陷。但只有在大模型和大量数据的情况下。由于SAP云平台后端服务的目标是轻松创建简单的应用程序,信息大数据,因此性能缺陷应该不是一个大问题。

导航

如果我在具有生成的UUID值的关键字段的实体之间有关联,该怎么办?

别担心,没有问题。

你可以试试这个例子:

然后按照导航链接,就像你习惯的那样:

…/服务/产品(1d40bf5e-1c24-4365-af45-38d069b083f2)/linkToCategory

结果和预期一样:

OData协议版本4和2

我们需要花一些关于OData的话,否则你可能会有这个问题…。如果没有辅导你会怎么做…?是的,拜托,我总是有各种各样的问题…正确,就像我一样。

创建API时,OData协议V4的端点会自动激活有几个原因,坚持更新的协议版本是有意义的。

我们点击V4链接并打开元数据文档:

我们可以看到CDS数据类型UUID被翻译成Edm.Guid文件在ODataV4中

很好。

现在我们打开"Pets"集合:

https://…/PETSERVICE/Pets

然后我们要调用一个条目的URL。

如何编写一个读取V4中的URL?

这就像您习惯的那样:将键附加在括号中。

在我们的示例中,当读取服务的单个资源时,URL的组成如下:

https://…/PETSERVICE/Pets(2bc690f8-4cef-4c22-8213-20940e303650)

如您所见,guid写在括号之间,物联网的应用实例,没有单引号有关OData规范的链接,请参阅"链接"部分。

如何在V2中编写读取URL?

只需单击一下,我们就可以激活OData V2端点。

然后尝试执行相同的单次读取:

…/odatav2/DEFAULT/SERVICE/Pets(2bc690f8-4cef-4c22-8213-20940e303650)

这次我们得到一个错误:

未知文本:"[2bc690f8-4cef-4c22-8213-20940e303650]"。

让我们不要试图理解错误消息……让我们假设URL不正确。如何学习如何编写URL好吧,大数据的数据库,看看我的博客请不要推销有关更多信息,请参阅OData规范:转到概述页:https://www.odata.org/documentation/odata-version-2-0/overview/并向下滚动至"6. "基本数据类型"引用:"总结了支持的基本类型集,以及在ODataURI中使用时必须如何表示每个基本类型"

有一个表,您可以从中获得有关Edm.Guid文件代表:同时给出了一个例子:

guid'12345678-aaaa-bbbb-cccc-ddddeeeefff'

注:在odatav2和V4中,组成包含GUID的读取URL是不同的在V4中,只需将guid值放在括号中在V2中,你必须用单引号写下术语"guid"和值

我们能有一个真正的具体例子吗?好的,根据我们的示例,URL必须这样组成:

…/odatav2/DEFAULT/SERVICE/Pets(guid'2bc690f8-4cef-4c22-8213-20940e303650′)

注意:关于我给出的URL示例:你可能已经注意到我删除了;v=1只要API只有一个版本可用,就可以做到这一点

摘要