如何将邮递员请求转换为NiFi请求?

问题描述 投票:0回答:1

我不介意您是否使用非Adobe Analytics的另一个API中的示例。我只需要知道为了成功将Postman请求转换为NiFi请求所必须遵循的模式。

成功创建请求以通过Postman从Adobe Analytics提取报告后,我很难将这些Postman请求迁移到NiFi。我还没有找到具体的用例来明确说明如何逐步执行此类任务。

我正在尝试在NiFi上构建一个后端,以便以高效且强大的方式处理来自Adobe Analytics的多个数据提取。那就是不必自己创建所有必需的脚本。但是,关于REST API和Postman案例的文档比关于REST API和NiFi案例的文档更多。

在下面的屏幕截图中,我们可以看到Postman请求的外观。它需要3个标头和1个包含授权值(承载者令牌)的临时标头。在[授权]标签中填写OAuth 2.0授权表单后,会自动生成此临时标头,如here所示。

Postman request

然后,我们有了请求的正文。 JSON文本是通过调试Adobe Analytics的工作区自动生成的,如图here所示。

Body of request

如果可能,我希望通过屏幕截图逐步了解以下内容:

  • 我应该在NiFi中使用哪个处理器来获得与邮递员相同的响应?
  • 我应该从处理器中添加/删除哪些属性以使其正常工作?
  • 我应该如何命名这些属性?
  • 是否有我应该修改其默认值/名称的默认属性?

如您所见,该问题主要涉及NiFi中的属性设置以及处理器选择。我已经尝试配置一些处理器,但似乎无法获得正确的属性设置,或者选择的处理器错误。

我正在使用NiFi v1.6.0和Postman v7.8.0

对于已经熟悉NiFi和API请求的用户来说,这很容易,但是事实证明,这对我来说具有挑战性。希望这将有助于其他希望通过使用NiFi而不是手动进行构建更强大管道的用户。

谢谢。

rest oauth-2.0 postman apache-nifi adobe-analytics
1个回答
0
投票

仅需3个NiFi处理器即可复制适用于Postman的REST API请求。在此解决方案中,我们使用包含嵌套JSON请求的请求。这种简单方法的优点在于,它减少了从API获得成功响应所需的配置量。也就是说,即使您正在使用复杂的JSON请求。在这种情况下,JSON请求的[[body通过GenerateFlowFile处理器传递,而无需任何其他处理器来解析/格式化请求。

步骤#1。创建一个名为GenerateFlowFile的处理器。您唯一需要修改的属性是自定义文本

。将整个JSON请求粘贴到那里,就像在Postman中一样。在这种情况下,我使用的是上面问题中显示的JSON。将Yield Duration设置为10秒或更长时间是一个好主意。Generate FlowFile

[步骤#2。

创建一个名为InvokeHTTP的处理器。然后修改下面的屏幕快照中显示的6个属性。使用与Postman中相同的授权详细信息。经过测试后,请确保从Postman复制Bearer令牌。另外,不要忘记同时设置HTTP MethodRemote URLContent-TypeInvokeHttp1InvokeHttp2

步骤#3。

最后,添加几个LogAttribute处理器以存储InvokeHTTP的输出。这些LogAttribute处理器之一应存储成功的响应。另一个可以用于失败,原始,重试和不重试。或者,您可以为每个这些输出创建LogAttribute

步骤#4。

现在,连接处理器和开始您的数据流!您应该开始看到数据填充了[[Successful
LogAttribute。然后,您可以使用“数据来源”选项来查看传入的数据,并确认这与您以前从Postman获得的结果完全相同。General data flow

注意:

这是一个简单,直接的“面向初学者”解决方案,可使用嵌套的静态JSON复制Postman API请求。 StackOverflow中有更多解决方案可以解决更复杂的情况,例如动态JSON。这是一些其他帖子的列表:

nifi invokehttp post complex json

© www.soinside.com 2019 - 2024. All rights reserved.