【问题标题】:How to invoke a remote REST service in NiFi如何在 NiFi 中调用远程 REST 服务
【发布时间】:2017-08-08 12:50:16
【问题描述】:

是否可以在 NIFI 处理器中使用 xmlHttpRequest 来调用远程休息服务?在我的情况下,ExecuteScript 处理器(使用 Javascript)无法评估XMLHttpRequest;有没有类似的解决方案可以用来获取响应数据?

var OutputStreamCallback = Java.type("org.apache.nifi.processor.io.OutputStreamCallback");
var StandardCharsets = Java.type("java.nio.charset.StandardCharsets");

Date.prototype.isValid = function () {
    return (Object.prototype.toString.call(this) === "[object Date]")
        && !isNaN(this.getTime());
};

var flowFile = session.get();

if (flowFile != null) {
    var fromDate = flowFile.getAttribute('fromDate')
    var uid = flowFile.getAttribute('uid')

    var xmlhttp = null;
    var result = null;

        xmlhttp = new XMLHttpRequest();
        if (typeof xmlhttp.overrideMimeType != 'undefined') {
            xmlhttp.overrideMimeType('application/json');

    } else if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open('GET', "similar url here WorkInfo?dateFrom=?&uid=?", true);
    xmlhttp.send(dateFrom, uid);
    if (xmlhttp.status == 200) {
        result = 'WorkInfoDate'
    }
    flowFile = session.putAttribute(flowFile, 'filename', fromDate + '_' + result);

    flowFile = session.write(flowFile,
        new OutputStreamCallback(function (outputStream) {
            outputStream.write(command.getBytes(StandardCharsets.UTF_8))
        }));

    session.transfer(flowFile, REL_SUCCESS)
}

【问题讨论】:

    标签: javascript rest apache-nifi


    【解决方案1】:

    有一个 InvokeHttp 处理器可以用来调用 REST 服务而无需编写任何代码:

    https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.3.0/org.apache.nifi.processors.standard.InvokeHTTP/index.html

    来自服务的响应将被写入流文件的内容中。

    【讨论】:

    • 我考虑过这个 nifi 处理器,但在这种情况下,我无法想象如何传递和更改参数(这对于 get 方法至关重要)在我的情况下它们每分钟都会改变跨度>
    • URL 属性支持表达式语言,因此您可以使用如下 URL:someservice?param1=${v1}&param2=${v2},然后您可以使用 UpdateAttribute 在此处理器之前将 v1 和 v2 设置为属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 2016-01-08
    • 2011-07-05
    相关资源
    最近更新 更多