kettle使用MD5加密增量获取接口数据
kettle使用MD5加密增量获取接口数据
场景介绍:
使用JavaScript组件进行MD5加密得到Http header,调用API接口增量获取接口数据,使用json input组件解析数据入库
案例适用范围:
MD5加密可参考、增量过程可参考、调用API接口获取数据可参考、Json Input组件使用可参考
整个job设置如下设计:

JOB介绍:
JOB包括获取增量时间点、记录日志、更新增量时间点、获取接口数据几个转换
调用接口取数TRANS详细介绍
接口取数整体设计如图:

接口Http header说明:

接口调用说明:

表输入生成接口调用信息
这里用到表输入组件,生成appKey、url、拼接request body、body以及增量时间、Http header等

JavaScript组件实现MD5加密
右键Add copy贴入脚本,然后右键Set Start Script进行设置Item_0

定义参数sign为body和appKey拼接后进行MD5加密后的结果

使用REST Client组件进行API调用
API调用信息从前一个步骤获取,设置如图,结果返回信息存入result


使用json input组件进行json解析
JSONPath介绍
JSONPath是xpath在json的应用。类似于XPath在xml文档中的定位, JsonPath表达式通常是用来路径检索或设置Json的。其表达式可以接受“dot–notation”和“bracket–notation”格式
JSONPath表达式
- SONPaht 用一个抽象的名字$来表示最外层对象。
- 使用.符号:$.result.content[0].title
- 使用[][‘result’][‘content’][0][‘title’]
- 数组索引
- JSONPath 允许使用通配符 * 表示所以的子元素名和数组索引。还允许使用 ‘…’ 从E4X参照过来的和数组切分语法[startstep]
$.result.content[(@.length-1)].title - 使用’@'符号表示当前的对象,?(<判断表达式>) 使用逻辑表达式来过滤 $.result.content[?(@.price < 10)].title
JSONPath语法元素和对应XPath元素的对比

JSONPath过滤器
json input组件JSONPath运用
文件选择从字段获取源

内容勾选

JSONPath运用

如内容有错欢迎大家指正!!!
读后有疑问请加QQ群,来聊一聊开源kettle+pentaho report designer那些事!作者个人qq:420773639

kettle使用MD5加密增量获取接口数据的更多相关文章
- Thinkphp3.2.3框架下封装公共的函数,例如封装CURL函数来获取接口数据
当我们需要在控制层调用相同的封装函数时,写多次相同的函数,显得代码十分的拉杂,不精简: TP框架有一个很好的机制,可以再Common定义一个function.php函数,当我们在控制层调用的时候直接调 ...
- php curl请求和获取接口数据
curl请求和获取接口数据 class ToolModel{ /** * [http 调用接口函数] * @Author GeorgeHao * @param string $url [接口地址] * ...
- Ajax获取接口数据,url拼接参数跳转页面,js获取上一级页面参数给本页面
1.Ajax获取接口数据 function demo(){ //假设请求参数 var requestBody = [{ "name":"zhang", &quo ...
- Android -- 获取接口数据的三个方法
1. compile 'com.loopj.android:android-async-http:1.4.9': AsyncHttpClient client = new AsyncHttpCli ...
- PHP获取接口数据(模拟Get)
当我们在做PHP开发的时候,很多时候需要对接口进行测试,或者更方便的调用一些已有模块的接口,取到结果并进行后续操作,我们可以通过curl进行模拟提交post和get请求,来去实现这些功能. 之后就可以 ...
- 利用window.name+iframe跨域获取接口数据
最近做了一个表单广告,需要从接口读取数据,做完发现谷歌火狐下正常,360兼容和IE浏览器无法获取数据,以下是鲜明的对比: 调试发现报错了: 然后开发把接口改成支持windowname,一开始 ...
- C# 获取接口数据(xml格式)转为json格式
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...
- .net之Ajax获取接口数据并实现循环播放
<script type="text/javascript"> var xhr; ; var res; window.onload = function () { xh ...
- html中通过js获取接口JSON格式数据解析以及跨域问题
前言:本人自学前端开发,一直想研究下js获取接口数据在html的实现,顺利地找到了获取数据的方法,但是有部分接口在调用中出现无法展示数据.经查,发现时跨域的问题,花费了一通时间,随笔记录下过程,以方便 ...
- 【APP接口开发】php获取body数据
PHP获取接口数据: $postStr = file_get_contents("php://input");//因为很多都设置了register_globals禁止,不能用$GL ...
随机推荐
- 「NOIP2024」 树上查询
update 2024/12/28 题目描述 给定一棵树,每次询问区间 \([l,r]\) 的 \[\max_{l \le l' \le r' \le r \land r' - l' + 1 \ge ...
- 0511-FileWrite字符输出流和JDK7中try..finally新的特性
package A10_IOStream; import java.io.*; /* java.io.Writer:字符输出流,是所有字符数出流的最顶层抽象父类 共性方法 void write(int ...
- Python基于自定义方法的排序
Python基于自定义方法的排序 在Python中,排序是一个常见的任务,它可以帮助我们根据特定的规则对数据结构(如列表)中的元素进行排序.Python的内置排序方法,如列表的sort()函数和内置函 ...
- Qt QFileSystemModel 的使用
Model 指的是数据 View 指的是界面,View不用设置,只需要和Model进行绑定,绑定完成之后就是Model的格式了 例子:本例子中QListView QTableView QTreeVie ...
- 开启 Typecho 的 gzip 压缩
简介 GZip压缩,是一种网站速度优化技术,也是一把SEO优化利器,许多网站都采用了这种技术,以达到提升网页打开速度.缩短网页打开时间的目的. 网站采用Gzip压缩,还有一个好处,就是让你少了一份流量 ...
- copilot插件使用介绍
Copilot插件是一个由GitHub开发的人工智能代码助手,可以为开发人员提供代码自动补全和建议功能.Copilot使用了机器学习技术,通过分析大量的开源代码来自动生成代码片段和建议. 使用Copi ...
- sql---一条sql查询语句是如何查询的、更新的
mysql分为server层和层存储引擎层 类型:InnoDB.MyISAM 查询过程 连接器:与客户端建立连接.获得权限.维持和管理命令 查询缓存:弊大于利,在8.0之后已去除 分析器:对sql语法 ...
- Windows 提权-内核利用_1
本文通过 Google 翻译 Kernel Exploits Part 1 – Windows Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校 ...
- golang倒腾一款简配的具有请求排队功能的并发受限服务器
golang官方指南给了一些代码片段来,层层递进演示了信道的能力: 1>. 信号量 2>. 限流能力 var sem = make(chan int, MaxOutstanding) fu ...
- H3C S520 V3 端口流量镜像
背景: 最近公司需要采集某工业PLC设备报文,临时查询了一下如何使用H3C交换机配置流量镜像. PLC地址: 192.168.3.213 MAC: e0:dc:a0:5c:47:2f (可通过ARP ...
