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

分布式数据库_什么叫服务器_便宜的

小七 141 0

嗨,

在这篇博文中,我想描述我如何在CPI上构建一个临时数据存储,它存储Webhook数据,并通过一个非常简单的API使其可用。基本上,我构建了一个RESTful HTTP API,支持HTTP POST、GET和DELETE。

我们的用例很简单:云应用程序通过webhook写入数据,然后需要将数据写入数据库

我的工作是创建一个端点,向其发送数据并从中获取数据。我将解释如何使用sapcpi上的数据存储来完成此任务。获取数据并写入数据库是通过SAP data Intelligence完成的,云服务器租用,本博客将不作介绍。

在SAP云平台集成上,可以创建一个普通的HTTP端点,该端点将附加到租户URL中,例如:

https://XXXX-iflmap.XXX.eu1.hana.ondemand.com/http/MY\u端点

现在你可以发送HTTP了请求并在该租户的集成流中处理它们。在该流中,您可以通过读取框架创建的一个名为CamelHttpMethod的变量来对不同的HTTP谓词作出反应。

路由器看起来如下:

单击图像将其放大。以下是代码片段:

与其他HTTP谓词类似。

这部分的内容是一个数据存储选择操作。它只需要一些轮询的消息,并将从数据存储返回那么多消息。这些消息以XML格式检索并存储在消息体中,如下所示:

请注意将包含每条消息的元素。我将在下一节解释它是如何创建的。

就是这样!在我的情况下,通信云,我还必须改变一点格式,添加分页并将其转换为JSON,但这是另一个博客的东西

文章-拿我的数据!

为了获得信息,首先,我们必须接收一些。这是在流的POST部分完成的。

数据存储写入操作处理消息的持久性。作为Webhook的输入,除了JSON之外,我还必须在存储它之前将它转换为XML。这是在JSON-to-XML转换器标准组件中完成的,该组件还将添加您在上一节中看到的JSON根元素(YourContent)。

JSON-to-XML转换器的设置

即用于存储消息的设置。非常直接。

删除-删除此条目!

删除是最棘手的部分,也是我决定写这篇博文的原因。我做了一个相当卑鄙的发现,这让我有点头疼,我想和你分享。

删除可能非常简单:数据存储选择(你记得,如何做淘客,在这个博客的获取部分)有"选择后删除条目"选项。乍一看,它非常适合用于临时存储:您选择一堆条目,然后在调用GET方法的客户端获取它们之后将它们删除。

问题是:在任何情况下,它们都会被删除,即使存在网络错误,并且没有正确地传输到客户端。因此存在数据丢失的可能性。

解决方法是创建一个专用的删除端点,该端点接受一个消息id并将其转发给数据存储删除操作。

正常的删除看起来是这样:

但是我如何访问{id}来告诉数据存储删除操作要删除哪个条目?

我在Dominic Beckbauer的非常好的博客中找到了这个信息。

有两个步骤:

我通过以下表达式将Id存储在一个交换属性(IDtoDelete)中:

交换属性是方便的键值映射,它附加到消息中,不会像头一样留下集成流。

内容修饰符如下所示:

由于Postman中的变量,通过读取头变量

来创建交换属性,我的删除请求看起来是这样的(注意http前面的双斜杠"//"

这导致了CamelHttpPath的一个strang内容:"NT/050b730b-811d-4ed2-8569-bcb87a72a502"

基本上不仅捕获了id,大数据分析培训课程,而且还捕获了URL的一部分,这肯定不会发生。删除第二个斜杠"/"后解决了

总结

在这个博客里,我展示了如何在SAP云平台集成上创建一个包含GET、POST和DELETE的RESTful API

我详细解释了DELETE操作,并展示了一个奇怪的bug和解决方案

谢谢阅读!

如果您喜欢这个博客,请在评论中告诉我,我将创建一个后续描述

我是如何计算总共有多少条条目和多少条被获取的(可怜的人分页)如何在删除条目之前检查条目是否存在,并添加自定义响应代码

如果您有任何问题、评论、改进等,请告诉我。我总是很高兴提高我的写作和CPI游戏。

致以最诚挚的问候

,企业应用中心