1. 概述编辑
1.1 版本说明
FineDataLink 版本 | 功能变动 |
---|---|
V1.5 | 数据来源中的数据源类型支持 RestAPI |
1.2 应用场景
出于安全考虑,有时不允许直接访问数据库,而是以 API 的形式对外提供数据。
此时用户需要通过 API 接口将数据取出并将其存放至对应的数据库中。
1.3 功能说明
FineDataLink 支持通过 RestAPI 接口进行取数,本文将介绍如何在「数据同步」节点中通过 API 接口取数到指定数据库。
2. 前提条件编辑
在使用 RestAPI 接口进行取数时,可以提前用 Postman 或者其他 API 调试工具进行测试,确保 API 的可用性。
3. 操作步骤编辑
我们使用简道云的查询多条数据接口,来对表单中的数据进行查询,示例接口为https://api.jiandaoyun.com/api/v2/app/611b6d288979ca000825e5b2/entry/611b6d2cb824ef000767d22d/data
接口信息详情参见:查询多条数据接口
3.1 创建任务
登录 FineDataLink,进入数据开发节点,创建一个 ETL 任务,并将其命名为「数据同步-API」,如下图所示:
将「数据同步」节点拖到设计界面,点击该节点打开设置界面,如下图所示:
3.2 API取数
1)数据源类型选择 RestAPI,填写 API 地址:https://api.jiandaoyun.com/api/v2/app/611b6d288979ca000825e5b2/entry/611b6d2cb824ef000767d22d/data
验证方式选择「Token」,并输入Token「1hVCBksfs1i41MaMGUZbTXfDdxfDGwtB」;选择请求类型为「POST」,如下图所示:
此时就已经可以直接进行数据预览了,可以看到出现了接口的响应数据,如下图所示:
如果需要进一步进行取数的条件设置,可以做更多的配置。
比如想要取出 data 这个 JSON 数组,并且只取前 5 条数据,可以点击「更多配置」,输入 JSON 路径「data」,因为我们给出的 API 接口已经定义了请求参数 limit(查询的数据条数,1~100,默认10),所以可以直接使用该请求参数,在请求参数中填入:{'limit':5},点击「数据预览」,如下图所示:
即可查看到取出的数据,如下图所示:
RestAPI 数据源所有设置项的介绍,如下表所示:
设置项 | 说明 | 是否必填 |
---|---|---|
API 地址 | RESTful 接口地址 | 必填 |
验证方式 | 有三种验证方式,选择对应的验证方式
| 必填 |
请求方式 | 可选「GET」或「POST」 | 必选 |
JSON 路径 | 若此项不填写,返回结果将包括所有对象 可以填写自定义的 JSON 路径控制只返回结果中的单个 JSON 对象或者 JSON 数组 例如 http://fine-doc.oss-cn-shanghai.aliyuncs.com/book.json 中想要取出store对象中book 数组数据,可以在路径中输入:store.book,得到如下图所示的数据: | 非必填 |
请求头 | 手动控制传递给 RESTful 接口的 header 信息,输入格式为: {"xxx-header":""xxx"} | 非必填 |
请求参数 | 可以手动控制传递给 RESTful 接口的参数信息:
格式为:GET:"a=123&b=456" POST:{"a":123,"b"=456} | 非必填 |
3.3 将数据存入数据库
数据源类型选择 MySQL,数据连接选择「FDLdemo」,目标选择自动建表,表名称为 apitongbu,直接将数据写入目标表,如下图所示:
在字段映射中可以查看到字段写入数据库前后的信息,如下图所示:
3.4 运行节点
点击「保存并运行」,出现执行成功信息即表示抽数成功,如下图所示:
节点运行成功后,可以看到已经将 API 数据取到 MySQL 数据库,如下图所示:
3.5 示例参考
示例详情参见:http://demo.finedatalink.com/ 中 「功能示例>步骤流>数据同步」下数据源类型为RestAPI-示例一和数据源类型为RestAPI-示例二。