【问题标题】:NiFi how to get the response of splitjson(each record) after calling a REST apiNiFi如何在调用REST api后获取splitjson(每条记录)的响应
【发布时间】:2019-11-17 15:19:51
【问题描述】:

我有以下调用 rest API 的顺序。

invokehttp 处理器-->split JSON--->jsonpath 处理器-->文本替换处理器(用于后期数据创建)---> InvokeHTTP--->XPATH 处理器用于属性--->原始流文件是调用http处理器并创建payload后由splitjson生成--->mqtt.

在这里我调用了其余的 API,在拆分大 json 之后,我使用文本替换来调用另一个 api(POST 请求),它使用来自第一个调用处理器的原始有效负载的属性。

在使用 xpath 表达式属性创建第二个调用 http 响应的响应之后,我必须在调用 http 处理器创建一个新请求以发送到 mqtt 之后获取由拆分 json 创建的拆分响应。 那么,如何获取拆分后得到的个人记录

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    听起来您正在尝试使用来自第二个 HTTP 调用的值来丰富原始 JSON 记录。如果是这种情况,请考虑将 LookupRecord 与 RestLookupService 一起使用。这可以减轻对 ReplaceText -> InvokeHTTP -> EvaluateXPath 的需求。如果这不能满足您的所有需求,并且您对 Groovy、Jython 或 Javascript 等脚本语言感到满意,您可以编写自己的 ScriptedReader 来进行第二次调用并提取您需要的所有值。

    【讨论】:

    • 但是如果我在第二次调用后使用 RestLookupService 流文件内容会被改变吗??
    • 它将被更改为引入您在 LookupRecord 中指定的任何字段,但它不会覆盖已经存在的内容(相对于 ReplaceText -> InvokeHttp 会替换原始内容)
    猜你喜欢
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2021-07-23
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多