我不介意您是否使用非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所示。
然后,我们有了请求的正文。 JSON文本是通过调试Adobe Analytics的工作区自动生成的,如图here所示。
如果可能,我希望通过屏幕截图逐步了解以下内容:
如您所见,该问题主要涉及NiFi中的属性设置以及处理器选择。我已经尝试配置一些处理器,但似乎无法获得正确的属性设置,或者选择的处理器错误。
我正在使用NiFi v1.6.0和Postman v7.8.0
对于已经熟悉NiFi和API请求的用户来说,这很容易,但是事实证明,这对我来说具有挑战性。希望这将有助于其他希望通过使用NiFi而不是手动进行构建更强大管道的用户。
谢谢。
仅需3个NiFi处理器即可复制适用于Postman的REST API请求。在此解决方案中,我们使用包含嵌套JSON请求的请求。这种简单方法的优点在于,它减少了从API获得成功响应所需的配置量。也就是说,即使您正在使用复杂的JSON请求。在这种情况下,JSON请求的[[body通过GenerateFlowFile
处理器传递,而无需任何其他处理器来解析/格式化请求。
步骤#1。创建一个名为GenerateFlowFile
的处理器。您唯一需要修改的属性是自定义文本
[步骤#2。
创建一个名为InvokeHTTP
的处理器。然后修改下面的屏幕快照中显示的6个属性。使用与Postman中相同的授权详细信息。经过测试后,请确保从Postman复制Bearer令牌。另外,不要忘记同时设置HTTP Method
,Remote URL
和Content-Type
。 步骤#3。
最后,添加几个LogAttribute
处理器以存储InvokeHTTP
的输出。这些LogAttribute
处理器之一应存储成功的响应。另一个可以用于失败,原始,重试和不重试。或者,您可以为每个这些输出创建LogAttribute
。 步骤#4。
现在,连接处理器和开始您的数据流!您应该开始看到数据填充了[[SuccessfulLogAttribute
。然后,您可以使用“数据来源”选项来查看传入的数据,并确认这与您以前从Postman获得的结果完全相同。注意:
这是一个简单,直接的“面向初学者”解决方案,可使用嵌套的静态JSON复制Postman API请求。 StackOverflow中有更多解决方案可以解决更复杂的情况,例如动态JSON。这是一些其他帖子的列表: