NiFi:我将使用哪个处理器连接到需要 3 个凭证元素的第三方 API?

NiFi: Which processor would I use to connect to a third party API requiring 3 credential elements?

配置 GetHTTP 处理器的选项看起来可以用于连接到第三方 API。我需要发送用户名(可用)、密码(可用)和代表数据库名称的第三个字符串值。当响应 (json) 返回时,它将包含一个会话标识符,稍后我将需要它来进行任何其他 API (javascript) 调用。这个处理器有一个 "new property" 选项,我认为我可以将其用于数据库字符串,但是,它似乎正在寻找特定类型的 属性。我收到的警告消息指出:'database' validated against 'mydatabasename' is invalid because 'database' is not a supported 属性。有什么建议吗?此外,一旦响应 return,我将如何为所有后续 API 调用保留会话 ID?

GetHTTP 接受将作为 HTTP 请求 headers 传递给服务器的动态属性。我在 NiFi 1.2.0 中添加一个名为 database 的动态 属性 没有任何问题,但我相信这是一个相对较新的添加,可能在早期版本中不可用。 InvokeHTTP 可能是替代方案。

重用 session id 需要从响应中解析出 session id 并将其解析为 NiFi 流文件属性。根据您返回的内容类型,这通常是使用 ExtractText、EvaluateJsonPath 或类似处理器完成的。

后续的 GetHTTP 或 InvokeHTTP 处理器应配置为具有 session id 的动态 属性,并将值设置为使用 NiFi 表达式语言来使用流文件属性,如 ${sessionid}.