不管是通过Java或者是Python编码的方式调用RESTful接口将结果入库,都是有一定复杂度的,首先你要加载第三方REST组件,然后连接数据库,写SQL语句,最后插入的目标数据库中
但我们有了Kettle这个工具之后,只需要使用她的图形化界面Spoon
就可以很方便的完成接口调用及入库的操作
简单的GET请求
需求
我们拥有接口api地址:http://xxx.domin.com/api
请求方式Get,无参数传递,响应内容如下:
我们需要将该JSON数据导入数据库中,如果region
字段存在,则更新该数据
实战
首先需要在Spoon中新建一个转换,菜单选项:文件 -> 新建 -> 转换
首先我们需要分析,我们这个转换操作需要哪些组件:
- 需要输入请求url
- 发送RESTful请求
- 入库
- JSON解析
定义变量
既然我们的url是指定的,那么我们可以在输入对象树中选择一个生成记录的组件
配置REST client组件
设定好请求接口变量,接下来选择发送RESTFul的组件,因为我们是请求的接口,因此可以直接选择REST client组件
因为我们在生产记录的组件中定义了接口的地址,因此我们这里可以选择从字段中获取地址,然后在URL field name中选择我们上个步骤中定义的变量名称
然后选择请求类型GET,输入输出的结果变量名称result
定义JSON输入流
接下来,通过REST组件,我们其实已经拿到的接口响应的JSON结果,此时我们需要一个JSON的输入流组件来接收,因此我们需要用到JSON input组件
JSON input组件我们需要设定两个关键的值
- 设置数据来源,因为我们是通过REST请求来获取的JSON,而并非是JSON文件,因此我们可以使用上个步骤中的输出字段result来作为我们的JSON输入源
- 设置输出隐射字段,我们得到了JSON的结果,通过接口的结果我们得知是一个JSON数组,因此我们需要设置字段名称,通过读取JSON的结果字段设置字段的映射
在JSON input组件中,字段的路径规则是通过$.field
来设