Apache Nifi,如何从API获取JSON

时间:2016-03-03 10:32:45

标签: json api rest apache-nifi

我已经开始使用Apache Nifi了,我还在学习它并尝试使用它。我真的想用Nifi从API获取JSON文档并将它们放在我的Elasticsearch数据库中。到目前为止,使用内置的getTwitter和putElasticsearch控制器可以正常工作。

但是现在我想用Twitter以外的其他API来做这件事,我有点卡在这里。首先,我真的不知道使用哪个控制器?我认为getHttp或invokeHttp即使用'GET'作为http动词,但它似乎不起作用。如果我使用getHttp,我必须使用密钥库和信任库来提供SSL服务..就像我为什么要这样做?

Apache Nifi仍然很新,很难找到关于这些事情的体面指南/信息。我已经阅读并搜索了文档,但没有更明智。

从API中获取的示例JSON是:

https://api.ssllabs.com/api/v2/getEndpointData?host=www.bnpparibasfortis.be&s=193.58.4.82

提前感谢能够提供帮助/见解的任何人。

1 个答案:

答案 0 :(得分:3)

用于获取JSON数据的处理器完全取决于您要访问的API。 GetHttp或InvokeHttp处理器应该可以从URL中获取数据。如果您注意到,SSL服务是GetHttp和InvokeHttp的可选属性,因此您只需要在通过HTTPS进行通信时使用它。此外,您可以在UI中右键单击处理器,然后单击“使用情况”以显示该处理器的文档。

在此链接[1]中,您可以找到一个NiFi模板,该模板使用GetHttp从randomuser.me获取JSON数据并对其进行各种处理。它主要是展示不同Avro处理器的模板,但抓取JSON的方法应该是相关的。

[1] https://github.com/hortonworks-gallery/nifi-templates/blob/master/templates/Convert_To_Avro_From_CSV_and_JSON.xml