今天接到一个需求,kettle调用接口取数,因为才接触kettle不久,很多主键还不了解,可能有更快捷的方式。
一开始只说明是从接口获取数据,然后本人就百度了一下kettle如何调用接口取数,具体步骤如下:
通过HTTP client
首先生成记录
填写记录的字段名称,类型 ,长度可写可不写,然后把连接填入值,注意上面的限制改为1,因为我们只要一条记录
其次创建HTTP client组件
过滤记录,这步根据需要添加
获取变量,前面http client出来的值为json类型,所以我们选择json输入,从制度按获取源字段名称就是http clien主键填写的结果字段名称
字段映射,将json的值一个一个取出,命名,去字段的规范:
在JSON input组件中,字段的路径规则是通过$.field
来设置的,但从上图我们可以看到,貌似并没有按照此种方式来设置,而是中间多了一层[]
中括号,这是因为我们的目标源返回的JSON是集合,而非对象
返回集合的JSON实例:
[{
"id":123,
"title":"我是标题"
}]
如果是以上这种方式,我们需要获取title的映射字段的话,那么我们在路径的表达式中应该写成$.[*].title
的格式
那假设我们的JSON结果是以下这种方式:
{
"id":123,
"title":"我是标题"
}
我们需要获取title字段的映射只需要写$.title
如果是多级层次对象,则通过.*
的通配符一直匹配下去即可.
例子:
最后根据字段选择,选取我们需要的字段
结果预览
以上就是kettle直接调用接口获取数据的方法,一开始我也天真的以为项目上取数也是直接这样,直到 调用接口说明发下来。。。。惨遭毒打,回头想想也是正常一个企业的数据怎么可能就这样直接调用接口就能取数呢,连令牌都不用,就相当于你去连接数据库,连数据库的密码都不需要就直接能获取数据
以下就是一个正常调用webservice接口获取数据的方式
通过http client 获取token,然后通过rest client携带token回调接口取数的步骤
首先放上提供测试的案例,因为是公司项目连接不方便提供,因为即使提供各位大佬也无法使用,因为这个是临时测试的接口连接
获取token和前面使用http client的步骤一样
先生成记录,这边多设置了几个变量
通过http client 获取token
接下来就是rest client的使用
这样就完成了获取token令牌,携带令牌访问接口,获取数据后面就是选择你需要的字段,输出
数据预览
添加字段
完成