NIFI调用API HTTP
1.新增处理器processor: GenerateFlowFile并增加参数属性
GenerateFlowFile-->properties-->点右上角的+号Add Property-->输入要传入的参数
本例参数为:account and password.
被请求服务器端给出帐号与密码,主要是目的是获取Token,再用Token取查询获取具体的数据。
2.参数属性转换为JSON:AttributesToJSON
AttributesToJSON-->properties-->Attributes List参数属性输入此处:account,password,此处理器将参数属性转为JSON
-->Destination转换好的json输出为文件内容:flowfile-content。
3.获取Token调用API:InvokeHTTP
InvokeHTTP-->properties-->HTTP Method根据实际选调用方法get或post-->HTTP URL设置调用的URL
-->Request Content-Type:application/json设置请求内容类型。
Request Body参数请求体通过上面的json文件传入。
"status": 200,
"success": true,
"msg": "Success",
"msgDev": null,
"response": {
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJRCI6IjM2MDgyIiwiVVNFUl9BQ0NPVU5UIjoiQWNjZXNzQVBJRm9yUmVkY3JlZCIsIlNUQUZGX05VTUJFUiI6IkFQSTAwMDciLCJTVEFGRl9OQU1FIjoiQWNjZXNzQVBJRm9yUmVkY3JlZCIsIk9SR19JRCI6Ijg4MCIsIk9SR19OQU1FIjoiU2hhcmVkIiwiREVQQVJUTUVOVF9DT0RFIjoiODE2OCIsIlRJVExFIjoiIiwiRU1BSUwiOiIiLCJBQ0NPVU5UX0RPTUFJTiI6Ik5PTkUiLCJDTElFTlRfVFlQRSI6IldFQiIsImp0aSI6IjRmMjRjMTRkLTIxNGMtNGM0My1iZTY0LTljYTgyMzcxNDZiZiIsImlhdCI6IjYvMTYvMjAyNSA0OjIxOjI0IFBNIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9leHBpcmF0aW9uIjoiNi8xNi8yMDI1IDg6MjE6MjQgUE0iLCJuYmYiOjE3NTAwNjIwODQsImV4cCI6MTc1MDA3NjQ4NCwiaXNzIjoiZUZhY3RvcnkuU2VydmljZSIsImF1ZCI6IndyIn0.FNZA9QJY5-DtUAM-wqAoBU0Y5XRVpzeyHexcywo1K-w",
"expires_in": 1440.0,
"token_type": "Bearer",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NTAwNjIwODQsImV4cCI6MTc1MDE0ODQ4NCwiaXNzIjoiZUZhY3RvcnkuU2VydmljZSIsImF1ZCI6IndyIn0.63gdKr4AAGncrMrAGPukih5q-SyhOJ0nr8vLFUNB9rs"
}
}
4.解析JSON获取Token:EvaluateJsonPath
EvaluateJsonPath-->properties-->Destination设置输出为属性:flowfile-attribute
-->点右上角的+号Add Property-->Property:输入属性变量token(自己定义),value:$.response.token
5.设置实际请求参数:UpdateAttribute
UpdateAttribute-->properties-->点右上角的+号Add Property-->输入要传入的参数属性:Property:START_TIME,Value:2023-12-01 00:00:00
Property:END_TIME,Value:2023-12-15 23:59:59
Property:Bearer_Token,Value:Bearer ${token}
6.实际请求参数属性转换为JSON:AttributesToJSON
AttributesToJSON-->properties-->Attributes List参数属性输入此处:START_TIME,END_TIME,此处理器将参数属性转为JSON
-->Destination转换好的json输出为文件内容:flowfile-content。
7.获取数据调用API:InvokeHTTP
InvokeHTTP-->properties-->HTTP Method根据实际选调用方法get或post-->HTTP URL设置调用的URL
-->Request Content-Type:application/json设置请求内容类型。
Request Body参数请求体通过上面的json文件传入。
8.解析JSON获取数据:EvaluateJsonPath
EvaluateJsonPath-->properties-->Destination设置输出为JSON内容:flowfile-content
-->点右上角的+号Add Property-->Property:输入属性变量JSON(自己定义), value:$.response