1.开发流程简介:

KETTLE调用java代码 kettle调用api_KETTLE调用java代码


第一步,选择Generate rows组件,可用来配置api的URL或者参数.

KETTLE调用java代码 kettle调用api_HTTP_02


这里需要特别注意,虽然api组件里可以直接设置URL和参数,但是他们并不是输入流组件,所以这里一定要存在一个类似Generate rows的输入流组件.

第二步,根据需求选择合适的api组件,这里以HTTP client组件为例:

KETTLE调用java代码 kettle调用api_字段_03


第三步,用json input组件解析json文件

KETTLE调用java代码 kettle调用api_KETTLE调用java代码_04


选择上一步定义的结果字段名,并在Fields页签里配置解析json文件的内容,

如下:

KETTLE调用java代码 kettle调用api_etl_05


最后一步,通过table output组件将解析完成的数据插入到目标表中.

2.组件介绍:

三者区别:

HTTP client组件对应的API的请求方式为’GET’.

HTTP post组件对应的API的请求方式为’POST’.

REST client组件则可以灵活的选择’GET’,'POST’或者其他请求方式.HTTP client:

KETTLE调用java代码 kettle调用api_KETTLE调用java代码_06


主要参数介绍:

URL一栏可以输入具体的URL,也可以勾选Accept URL from field,通过选择URL field name,从前面的组件中选择.

Encoding是解析api的编码,默认是UTF-8

Connection timeout是建立连接的超时时间,默认为10000毫秒

Socket timeout是指客户端和服务进行数据交互的时间,这里指的是单次抓取数据包的交互时间,而不是整个交互的持续时间.默认为10000毫秒

connection close wait time是客户端连接关闭等待时间,默认为-1.

Result field name用来存api抽下来的数据,指定一个名称,以便后续使用.

HTTP status code field name用来存api执行的结果的状态,指定一个名称,以便后续使用.

Response time field用来存api相应的时间,单位为毫秒.

Response header filed name用来存api返回的一些header参数.也是json格式.

HTTP authentication:如果需要用此种方式做http身份验证的话,则在这里配置http login 和http password

Proxy to user:配置Proxy的用户名和密码

KETTLE调用java代码 kettle调用api_HTTP_07


这里分别对应api的parameter和header参数.

parameter和header列填写对应的参数名称,name和field列选择对应的参数值.HTTP post:

KETTLE调用java代码 kettle调用api_etl_08


主要参数介绍:

HTTP post组件中的参数和HTTP client组件基本一致,主要是多个request entity field:此字段用来选择post的请求实体字段.REST client:

KETTLE调用java代码 kettle调用api_etl_09


主要参数介绍:

REST client组件可以选择请求方式,当HTTP method为Post时,则可以选择Body filed(请求体参数).也可以通过勾选get method from field而指定请求方式的字段.

Application type为需要发送的请求体参数的数据类型,默认为TEXT PLAIN.

也可以选择JSON或者XML等数据类型.