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. Dart中操作符详细介绍和使用

    dart中静态成员 1 使用satic关键字 来实现类级别的变量和函数 2 静态方法不能够访问非静态成员, 非静态方法可以访问静态成员 3 静态属性,不要通过this去访问 因为this指向的是这个实 ...

  2. 【小记】在 Google Colab 等平台上运行 GPU 容器

    最近想到了可能的创新点,准备开始做实验了.咱想先在 Colab 这种提供免费 GPU 算力的平台上跑一些小实验,后续再转移到实验室机器上. 如果每次都要重复搭建环境多少有些麻烦了. 那咱用容器化技术不 ...

  3. 六. Redis当中的“发布” 和 “订阅” 的详细讲解说明(图文并茂)

    七. Redis 当中 Jedis 的详细刨析与使用 @ 目录 七. Redis 当中 Jedis 的详细刨析与使用 1. Jedis 概述 2. Java程序中使用Jedis 操作 Redis 数据 ...

  4. mac安装gcc7

    查看gcc版本 gcc --version 1.安装gcc brew install gcc@7 cd /usr/local/Cellar 改名mv gcc\@7/ gcc   2.打开mac的SIP ...

  5. 微信分享前端开发全程详解含iOS、安卓、H5、ReactNative以及微信开放标签的适配和使用

    2024年9月,本人在做微信分享前端部分的iOS.安卓和H5的页面和功能时踩了不少坑,于是写了这篇文章,内容包括微信分享在上面三个端的技术点和坑点.解决办法,微信开放标签的相关适配,以及ReactNa ...

  6. C# 钩子函数使用

    1. 什么是钩子 hook(钩子)是windows提供的一种消息处理机制平台,是指在程序正常运行中接受信息之前预先启动的函数,用来检查和修改传给该程序的信息,(钩子)实际上是一个处理消息的程序段,通过 ...

  7. nginx失效 nginx不起作用

    nginx失效的原因 今天大晚上的,服务器更新了,重启了,然后我重新开一下后端,nginx. 奇了个怪,一直给我报404,而且不是nginx给我报的啊,就是普通的404,完全404了. 我看nginx ...

  8. flutter - [01] Dart概述

    题记部分 一.什么是dart dart是由谷歌开发的计算机编程语言,可以被用于web.服务器.移动应用和物联网等领域的开发 dart诞生于2011年,号称要取代JavaScript.但是过去的几年中一 ...

  9. CF2029C New Rating

    思路(二分 + 数据结构优化DP) 大致题意为:一个值 \(x\) 初始为 \(0\),然后有一个数组 \(a\),遍历一次数组. 如果 \(a_i > x\),则 \(x + 1\). 如果 ...

  10. 面试题54. 二叉搜索树的第k大节点

    地址:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ <?php /** 面试题54. ...