反馈已提交

网络繁忙

数据同步-API

  • 文档创建者:Wendy123456
  • 历史版本:60
  • 最近更新:Roxy 于 2024-02-18
  • 1. 概述

    1.1 版本说明

    FineDataLink 版本功能变动
    V1.5
    数据来源中的数据源类型支持 API
    4.0.10API交互优化
    4.0.13

    JSON 返回值处理优化,与API输入相同,详情参见本文第六章

    4.0.17API 支持自定义认证,详情参见本文第四章
    4.0.19数据去向支持AI输出,同时数据来源API支持关闭SSL证书验证,详情参见API关闭证书验证
    4.0.23

    API 配置中的 body 请求内容支持使用 Content-Type 为 form-data 和 x-www-form-urlencoded 请求格式,

    允许添加多行、每行均为自定义输入、支持引用参数,详情参见本文第四章

    4.1.1
    • 支持自签名证书,详情参见第四章

    • 支持控制 API 调用频率,详情参见本文第四章

    4.1.3 支持分页取数,详情参见:API输入-分页取数

    1.2 应用场景

    出于安全考虑,有时不允许直接访问数据库,而是以 API 的形式对外提供数据。

    此时用户需要通过 API 接口将数据取出并将其存放至对应的数据库中。

    1.3 功能说明

    FineDataLink 支持从 API 接口中取数,本文将介绍如何在数据同步节点中通过 API 接口取数。

    8.png

    2. 前提条件

    • 关于API 接口信息介绍,详情参见:API入门

    • 在使用 API 接口进行取数时,可以提前用 Postman 或者其他 API 调试工具进行测试,确保 API 的可用性。

    3. 使用限制

    • 若接口返回值为 XML格式或者较复杂的 JSON 格式,希望将其解析为二维表格式,或者需要对返回值进行进一步的数据处理,需要使用数据转换中API输入,以便后续使用封装好的算子进行进一步数据处理。

    • 当前 FineDataLink 内置的请求超时时间是10s,如果 API 查询返回时间超过 10s 将导致任务失败。若用户需要增大请求时间,可以使用 FDLTimeout 参数,详情参见本文第七章。

    4. 功能概述


    内容说明
    A

    请求方法

    FDL 支持GET和POST两种请求方式。关于API接口说明详情参见:API入门

    注:FDL 支持GET和POST两种请求方式,若您需要使用PUT或者 DELETE 请求方法,POST 方法也能满足需求。

    B

    接口地址

    需要调用接口url
    C

    请求参数

    URL 传参(Query参数)

    • 可手动添加参数,填写参数名、参数值

    • 也可以直接在URL后添加参数 例如:

    9.png

    DAuthorization 认证类型
    • 无认证(默认)

    • Bearer Token:在输入框中输入 token 验证

    • Basic Auth:输入用户名和密码验证

    • 其他认证:将Authorization选项原样放入、且支持参数输入

    EHeaders 请求参数
    • 支持 application/x-www-form-urlencoded、application/json、application/xml、multipart/form-data、text/xml、text/plain 请求格式;

    • 允许用户在 Headers 内对 Content-Type 进行自定义设置,即 Content-Type 的下拉框支持输入非下拉列表值;

    10.png

    • Body与Content-Type双向联动

    Body一级选项Body二级选项Content-Type默认值说明
    form-data
    multipart/form-data 允许添加多行、每行均为自定义输入、支持引用参数;
    x-www-form-urlencoded
    application/x-www-form-urlencoded允许添加多行、每行均为自定义输入、支持引用参数;
    rawJSONapplication/json
    XMLapplication/xml 
    TEXTtext/plain
    • 如果输入的 Content-Type 不在联动列表内,则 Body 内格式较改变 Content-Type 前不发生变化;

    • 如果用户输入不在列表内的 Content-Type 后,再修改Body的格式,则自动覆盖Headers内的Content-Type为联动值;

    FBody 请求内容

    注:选择POST请求方式时展示此选项。

    Body中支持格式选择,TEXT、JSON、XML

    body 内容写法如下:

    • GET 方法:abc=1&def=1

    • POST 方法:JSON 类型参数

    格式为:GET:"a=123&b=456" POST:{"a":123,"b"=456}

    GTLS/SSL 自签名认证

    当 API配置了 https 时,支持自签名证书

    配置自签名证书后,当进行 https 请求时,按照 SSL/TLS 协议进行请求处理。

    注:支持.p12、.jks的文件类型。

    H响应内容如果是JSON格式,可进行后续的处理

    为空默认解析首层节点,可用「$.父节点.子节点」的格式自定义解析层级,例如: 一层:$.store;两层:$.store.book;

    详情参见本文第六章。

    I

    调用频率控制

    当用户设置当前API调用的频率限制时,可在一次执行实例中控制该API的调用频率。

    控制频率:秒/分钟/小时/天

    例如控制调用频率为 1 分钟一次,则任务执行后可以看到日志,API 一分钟调用一次,如下图所示:

    J
    分页取数详情请参见:API输入-分页取数

    5. 操作步骤

    我们使用简道云的查询多条数据接口,来对表单中的数据进行查询,示例接口为https://api.jiandaoyun.com/api/v4/app/62e9e1c00a99380008a3ccd2/entry/62e9e20f49a9e700085d5e08/data

    接口信息详情参见:查询多条数据接口

    5.1 创建任务

    登录 FineDataLink,进入数据开发节点,创建一个定时任务,并将其命名为「api」,如下图所示:

    数据同步节点拖到设计界面,点击该节点打开设置界面,如下图所示:

    5.2 API取数

    1)数据源类型选择 API,填写 API 地址https://api.jiandaoyun.com/api/v4/app/62e9e1c00a99380008a3ccd2/entry/62e9e20f49a9e700085d5e08/data

    验证方式选择「Token」,并输入Token「Btu3skup52lmoon9yQAZWGEcOPCYSRDE」;选择请求类型为「POST」,如下图所示:

    1.png

    查看接口文档,请求方式为 POST,请求参数默认是body,因此可以将下面几个参数放入body中,同时接口使用的是 application/json的body类型格式。

    比如想要取出 data 这个 JSON 数组,并且只取前 5 条数据。

    首先选择 Body,设置为 JSON 格式,此时Headers 中会自动显示为 {"Content-Type":"application/json"}格式,因为我们给出的 API 接口已经定义了请求参数 limit(查询的数据条数,1~100,默认10),所以可以直接使用该请求参数,在请求参数中填入:{"limit":5},如下图所示:

    2.png

    3.png

    此时点击数据预览,此时即可看到取出的数据,如下图所示:

    若只想要取出 JSON 数组中 data 数据,可以输入 JSON 路径「$.data」,如下图所示:

    更多返回值相关说明详情参见本文第四章。

    4.png

    • 若勾选了「将解析后的json数据展开为二维表」,则预览时以二维表的形式;

    • 若未勾选「将解析后的json数据展开为二维表」,则以JSON格式预览数据。

    即可查看到取出的数据,如下图所示:

    4.0.13 之前的版本
    升级后
    「数据同步」「参数赋值」里的API配置,未配置返回值处理

    JSON路径:为空

    勾选:将解析后的json数据展开为二维表

    「数据同步」「参数赋值」里的API配置,配置了返回值处理

    JSON路径:自动升级为JSONPath的写法,例如data 升级后变为 $.data

    勾选:将解析后的json数据展开为二维表

    5.3 将数据存入数据库

    1)设置数据要保存的位置。
    本文示例中,保存到 MySQL 数据库的 apitongbu 表中,字段映射就是查看或修改源表跟目标表的字段关系,此处用默认的即可。如下图所示:

    5.png

    2)写入方式选择「追加写入数据」,将全部数据写入到目标表中。如下图所示:

    6.png

    3)点击「保存并运行」,出现执行成功信息即表示抽数成功,如下图所示:

    节点运行成功后,可以看到已经将 API 数据取到 MySQL 数据库,如下图所示:

    6. 返回值处理说明

    接口数据返回值如果是 JSON 格式,想要取出指定的 JSON 数组,可以使用「返回值处理」直接解析 JSON 数据。

    数据类型转换列表:

    类型分类字段类型
    整数类long,int
    字符串类string
    浮点类double,float
    布尔类boolean
    日期时间类date
    其他类型显示为空

    以 http://fine-doc.oss-cn-shanghai.aliyuncs.com/book.json 为例。

    6.1 默认返回值

    API 取数默认返回的结果将包括所有对象,同时解析首层的节点

    即返回 store、store.book、store.bicycle、store.bicycle.color、store.bicycle.price 数据。

    6.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表达式

    7. 注意事项

    请求时间默认为 10秒,若用户的数据量较大,接口请求时间较长,4.0.13 以及之后的版本可以在FDL的 Header 内使用 FDLTimeout 字段设置超时时间。

    该参数参数值需要写入正整数,且单位为秒(s),如下图所示:

    注1:若数据量较大,JSON 格式数据建议取消勾选「将解析后的JSON数据展开为二维表」,否则会增加加载响应时间。

    注2:需注意参数名称为 FDLTimeout ,用户不能自定义参数名的大小写(参数名大小写敏感)。11.png

    8. 最佳实践

    附件列表


    主题: 数据开发
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持