通过CAP服务接收任意有效载荷?

2020-08-18 09:05发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我想知道如何使CAP...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我想知道如何使CAP服务接收和处理任意有效载荷? 背景:CAP应用程序应为另一个应用程序X提供Webhook,以向其提交通知。 X发送类似 https://cloudevents.io/负载的内容。

首先,我尝试为与期望的有效负载匹配的实体建模,但是由于有效负载包含与CDS语法不兼容的名称,因此该方法不起作用。

然后,我尝试了一个动作和一个自定义实现的简单服务。 这是因为请求已成功通过204发布到操作中。但是,在我的自定义实现中找不到有效负载。

 service EventsService {
     动作notify();
 }
 
 module.exports = srv => {
     srv.on('notify',async(req)=> {
         console.log(req.data);
     })
 }

 

有效负载示例

 {"事件类型":" SalesQuote.Root.Updated","事件类型版本":" v1","事件ID":" 00163e87-5338-1eda-a0dd-83d76d55a94a","事件 -time":" 2020-04-20T09:48:41Z",
 " data":{" root-entity-id":" 00163E8753AA1EDA9CE545168DEE707B"," entity-id":" 00163E8753AA1EDA9CE545168DEE707B"}}
 

req.data为空。 我想这是有道理的,因为我对动作建模时没有任何参数。 我浏览了req ._。req,但也找不到那里的有效载荷。

我尝试了除JSON之外的有效负载内容类型,但无法将其反序列化。

在CAP服务中是否可以访问任意有效载荷数据? 我的方法是否可行,是否有另一种模式来实现Webhook通知?

最诚挚的问候,

Manuel

5条回答
微wx笑
2020-08-18 09:22 .采纳回答

嗨曼努埃尔,

几天前我在 此处收到的答案可能会有所帮助。 >

根据您需要处理的数据,它可能会很有用。 就我而言,它必须简单地返回一个字符串和一个返回码。 我只需在快速服务器文件中添加以下行即可解决我的要求:

等待app.put('/callback/v1.0/tenants/*',函数(req,res){
      ....做一些事情
      res.status(200).send(tenantAppURL);
 });
 等待app.delete('/callback/v1.0/tenants/*',函数(req,res){
     ...做一些事情
     res.status(204);
 });  

希望这会有所帮助。

最诚挚的问候

Marc

一周热门 更多>