Kettle REST Client通过GET获取token以POST方式请求接口解析JSON入文件完整实例
需求说明
通过kettle组件调用接口并解析JSON成结构化数据入文件。
完整实例
解决方法
- 利用生成记录组件定义URL参数
- 通过REST ClENT组件请求得到TOKEN
- 通过JSON INPUT组件解析接口请求的结果
- 通过JAVASCRIPT组件拼接生成业务接口的完整参数
- 通过REST ClENT组件请求得到JSON结果
- 通过JSON INPUT组件解析业务接口请求的结果
- 拖Swich/Case组件判断接口调用状态
- 通过文本文件输出组件保存解析后结果。
Step0:新建kettle转换
Step1:定义原始参数
拖一个生成记录组件,定义tokenurl
Step2:调用接口获得token
拖一个REST CLIENT组件用户获取token,勾选从从字段里获取URL,设置请求方法为GET并定义结果字段名为result。
Step3:解析JSON里的Token
拖一个JSON Input组件,勾选原定义在一个字段里,字段选择result。
#定义解析JSON的方法
Step4:拼接新的调用参数
拖个JAVASCRIPT组件定义新的变量拼接完成的接口url。
Step5:定义接口参数
拖一个REST CLIENT组件:
1、勾选从字段里获取URL
2、选择URL字段变量为zzzfinsurl
3、选择请求类型为POST,
4、设置body字段为生成记录组件里定义的zzzbody
5、设置返回字段为 zzzresult
6、设置HTTP状态字段为zzzcode
Step6:判断接口调用状态
拖一个Switch/case组件,对Http状态进行判断,如果请求状态码是200则执行JSON Input组件。
Step7:解析接口调用结果
拖一个JSON INPUT组件,勾选原定义在一个字段里,选择源字段zzzresult。
#指定JSON解析方法
Step8:入文件或者入库
拖一个文本文件输出组件,指定文件路径名、字段映射关系。
延展阅读
如果JSON解析不熟悉,可以先拷贝一个接口调用的JSON文件,在JSON INPUT组件里指定JSON文件,点击选择字段来让kettle生成解析表达式。
#1 指定本地JSON文件,主要这里要取消勾选原定义在一个字段里。
#2 点击选择字段
#3 勾选要解析的字段(支持多选)
#4 注意:因为这里为了方便生成JSON解析表达式,实际调用时需要再次勾选原定义在一个字段里。
Step9: 调用验证
#1 调用转换
/root/software/data-integration/pan.sh -file=/root/workbase/RESTCLIENT.ktr
#2 查看结果