1. 概述编辑
1.1 版本说明
| FineDataLink 版本 | 功能变动 |
|---|---|
| 1.5 | 数据来源中的数据源类型支持 API |
| 4.1.3 | 支持分页取数,详情参见:API输入-分页取数 |
| 4.1.7.3 | 「高级配置」中支持指定响应数据字符编码方式,详情参见:数据同步-API |
| 历史版本更新 | ||||||||||||||||||
|
1.2 应用场景
用户希望取出 API 数据后做进一步的数据处理再保存,此时,数据同步-API 不能满足需求。
1.3 功能说明
「数据转换」节点中新增「API 输入」算子,使用「API 输入」算子接口取数后,可继续使用其他算子对接口数据进行处理。如下图所示:
注:若接口返回值为较简单的 JSON 格式,不需要复杂的解析处理,可直接使用 数据同步-API 进行接口取数。

2. 前提条件编辑
1)关于 API 接口信息介绍,详情参见:API入门
2)在使用 API 接口进行取数时,可以提前用 Postman 或者其他 API 调试工具进行测试,确保 API 的可用性。如下图所示:

3)需要注册「接口协议(定时)」功能点。
3. 使用限制编辑
当前 FDL 内置的请求超时时间是 10s,如果 API 查询返回时间超过 10s 将导致任务失败。
若用户的数据量较大,接口请求时间较长,4.0.13 及之后版本的 FDL 接口取数时可以在 Header 内使用 FDLTimeout 字段增大超时时间。
需注意参数名称为FDLTimeout,用户不能自定义参数名的大小写(参数名大小写敏感);参数值需要写入正整数,且单位为秒(s)。如下图所示:
注:若数据量较大,JSON 格式数据建议取消勾选「将解析后的JSON数据展开为二维表」,否则会增加加载响应时间。

4. 功能概述编辑
API 取数时,设置界面如下图所示:

| 序号 | 内容 | 说明 | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | 请求方法 | FDL 支持 GET 和 POST 两种请求方式。关于 API 接口说明详情参见:API入门 注:FDL 支持 GET 和 POST 两种请求方式,若您需要使用 PUT 或者 DELETE 请求方法,POST 方法也能满足需求 | ||||||||||||||||||||||
| B | 接口地址 | 需要调用接口的 URL | ||||||||||||||||||||||
| C | 请求参数 URL 传参(Query参数) |
| ||||||||||||||||||||||
| D | Authorization 认证类型 |
| ||||||||||||||||||||||
| E | Headers 请求参数 |
| ||||||||||||||||||||||
| F | Body 请求内容 | 注:选择POST请求方式时展示此选项 Body中支持格式选择,TEXT、JSON、XML body 内容写法如下:
格式为:GET:"a=123&b=456" POST:{"a":123,"b"=456} | ||||||||||||||||||||||
| G | TLS/SSL 自签名认证 | 当 API配置了 https 时,支持自签名证书 配置自签名证书后,当进行 https 请求时,按照 SSL/TLS 协议进行请求处理 注:支持.p12、.jks的文件类型
| ||||||||||||||||||||||
| H | 响应内容如果是JSON格式,可进行后续的处理 | 为空默认解析首层节点,可用「$.父节点.子节点」的格式自定义解析层级,例如: 一层:$.store;两层:$.store.book 详情请参见本文第五章 | ||||||||||||||||||||||
| I | 调用频率控制 | 当用户设置当前API调用的频率限制时,可在一次执行实例中控制该API的调用频率 控制频率:秒/分钟/小时/天
例如控制调用频率为 1 分钟一次,则任务执行后可以看到日志,API 一分钟调用一次: | ||||||||||||||||||||||
| J | 分页取数 | 详情请参见:API输入-分页取数 | ||||||||||||||||||||||
| k | 响应字符编码 | 指定响应数据字符编码方式 支持 UTF-8、UTF-16、GBK 三种方式 将按照字符编码方式解析 API 响应数据 |
5. 返回值处理说明编辑
接口数据返回值如果是 JSON 格式,想要取出指定的 JSON 数组,可以使用「返回值处理」直接解析 JSON 数据。
数据类型转换列表:
| 类型分类 | 字段类型 |
|---|---|
| 整数类 | long,int |
| 字符串类 | string |
| 浮点类 | double,float |
| 布尔类 | boolean |
| 日期时间类 | date |
| 其他类型 | 显示为空 |
以 http://fine-doc.oss-cn-shanghai.aliyuncs.com/book.json 为例。

5.1 默认返回值
API 取数默认返回的结果将包括所有对象,同时解析首层的节点
即返回 store、store.book、store.bicycle、store.bicycle.color、store.bicycle.price 数据。
5.2 指定返回值
可以填写自定义的 JSON 路径控制只返回结果中的单个 JSON 对象或者 JSON 数组
使用「父节点.子节点」的格式自定义解析层级,例如: 一层:store;两层:store.book;三层:store.book.author
例如想要取出 store 对象中 book 数组数据,可以在路径中输入:$.store.book,可以获取到 book 数组下的所有数据,如下图所示:

例如想要取出 store 对象中的数据,可以在路径中输入:$.store,可以获取到 store 对象下的首层节点的数据:book、bicycle、bicycle.color、bicycle.price,如下图所示:

更多 JSON 解析表达式详情参见:JSONPath表达式






