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加密

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过滤器


JSONPath在线解析器

json input组件JSONPath运用

文件选择从字段获取源

内容勾选

JSONPath运用


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

kettle使用MD5加密增量获取接口数据的更多相关文章

  1. Thinkphp3.2.3框架下封装公共的函数,例如封装CURL函数来获取接口数据

    当我们需要在控制层调用相同的封装函数时,写多次相同的函数,显得代码十分的拉杂,不精简: TP框架有一个很好的机制,可以再Common定义一个function.php函数,当我们在控制层调用的时候直接调 ...

  2. php curl请求和获取接口数据

    curl请求和获取接口数据 class ToolModel{ /** * [http 调用接口函数] * @Author GeorgeHao * @param string $url [接口地址] * ...

  3. Ajax获取接口数据,url拼接参数跳转页面,js获取上一级页面参数给本页面

    1.Ajax获取接口数据 function demo(){ //假设请求参数 var requestBody = [{ "name":"zhang", &quo ...

  4. Android -- 获取接口数据的三个方法

    1.   compile 'com.loopj.android:android-async-http:1.4.9': AsyncHttpClient client = new AsyncHttpCli ...

  5. PHP获取接口数据(模拟Get)

    当我们在做PHP开发的时候,很多时候需要对接口进行测试,或者更方便的调用一些已有模块的接口,取到结果并进行后续操作,我们可以通过curl进行模拟提交post和get请求,来去实现这些功能. 之后就可以 ...

  6. 利用window.name+iframe跨域获取接口数据

    最近做了一个表单广告,需要从接口读取数据,做完发现谷歌火狐下正常,360兼容和IE浏览器无法获取数据,以下是鲜明的对比:      调试发现报错了: 然后开发把接口改成支持windowname,一开始 ...

  7. C# 获取接口数据(xml格式)转为json格式

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...

  8. .net之Ajax获取接口数据并实现循环播放

    <script type="text/javascript"> var xhr; ; var res; window.onload = function () { xh ...

  9. html中通过js获取接口JSON格式数据解析以及跨域问题

    前言:本人自学前端开发,一直想研究下js获取接口数据在html的实现,顺利地找到了获取数据的方法,但是有部分接口在调用中出现无法展示数据.经查,发现时跨域的问题,花费了一通时间,随笔记录下过程,以方便 ...

  10. 【APP接口开发】php获取body数据

    PHP获取接口数据: $postStr = file_get_contents("php://input");//因为很多都设置了register_globals禁止,不能用$GL ...

随机推荐

  1. ORACLE存储过程编程应用实例-门诊药房发药

    最近两个整理了门诊药房发药的业务逻辑,准备通过存储过程实现数据处理.耗费两天时间验证终于完成,对存储过程的了解又深入了一些,总结如下: 1.游标的遍历使用了FOR IN语句进行循环,比FETCH与方便 ...

  2. @所有Mac用户 刺客信条系列登陆Mac平台!

    [历史性的跨越] 在无数Mac游戏爱好者的热切期盼中,终于将风靡全球的3A级巨作--刺客信条系列,成功移植至MacOS系统!这意味着,无论是穿梭于中世纪欧洲的隐秘巷弄,还是翱翔于维多利亚时代的伦敦天际 ...

  3. 浅说 c++20 cppcoro (三)

    浅说 c++20 cppcoro (三),https://www.cnblogs.com/bbqzsl/p/18679860 接着上一篇浅说 c++20 coroutine (二) ,继续没说完的事. ...

  4. WinForm 进度条显示进度百分比

    参考: https://blog.csdn.net/zhuimengshizhe87/article/details/20640157 WinForm中显示进度条百分比有多种方式: 1. 添加 Lab ...

  5. [WC2014] 紫荆花之恋 题解

    啊啊啊啊啊啊啊啊啊啊啊我终于改完啦啊啊啊啊啊啊啊. 因为没有在最开始的时候将所有点设置为已经重构的,所以直接 \(R15-R70\) 间卡了两三天. 似乎也是我第一次大规模使用指针了. 这道题假如只有 ...

  6. mysql中,让自动增长字段值复位/重新计数

    在使用mysql时,常常要设置一个id值,并设置为自动增长 如果想要复位重新计数的话,那么应该使用以下语句 ALTER TABLE `表名` AUTO_INCREMENT = 1; 但需要注意的是,除 ...

  7. Informatica - [01] 概述

    题记部分 001 || 概述   Informatica 是一家全球领先的数据集成和数据管理解决方案提供商,致力于为客户提供具有强大的元数据管理.数据集成和个性化分析递送功能.Informatica的 ...

  8. 【ABAQUS文档笔记】ABAQUS刚体单元和可变形单元的review

    学习笔记,帮助文档学习笔记 目录 A. finite element DOF of Elem Order of Elem Formulation of Elem Integration A.1 con ...

  9. AWVS安装使用

    AWVS安装使用 1.双击exe文件,然后点击下一步. 2.选择我接受,然后下一步. 3.选择路径(我选择的默认路径)然后下一步. 4.还是下一步. 5.设置邮箱,用户名密码,用户名12345678@ ...

  10. rust学习笔记(1)

    参考 rust圣经 参考 通过例子学习rust cargo 是rust的包管理器+编译工具 创建新项目 使用下述指令创建一个新的项目 cargo new rust_learn 执行 使用 cargo ...