前置学习

请首先学习官网教程 "Excel服务器调用第三方WebApi"章节,再阅读以下进阶内容。

其它参考案例:

一、WebApi 的结构

1. 接口地址

格式:http://www.xxx.com/xxx

2. 调用方法

GET、POST 等。

调用方法
调用方法配置示意

3. 请求参数

3.1 QueryParams(查询参数)——请求地址中问号后面的参数。

QueryParams
QueryParams 配置示意

3.2 Body(Json 参数)——目前只支持 json 格式。

Body参数
Body(Json)参数配置

3.3 Headers(请求头)——请求头中需要的参数。

Headers
Headers 请求头配置

4. 返回参数

目前只支持 json 格式。勾选"返回参数存入数据库"后,每个子集都会创建成一个数据表(表名为子集名),调用 Api 接口后数据会保存到 ES 数据表。

返回参数
返回参数配置(存入数据库)

5. 举例说明

WebApi 的全部属性需要在第三方 Api 文档中获取。以下通过三个例子演示如何依照 Api 文档定义一个 WebApi。

例子1

例子1-1
例子1-2
例子1-3

例子2

例子2-1
例子2-2
例子2-3
例子2-4

例子3

例子3

二、WebApi reader 公式与 writer 公式的区别

相同点:两者都能组织请求数据后调用 WebApi,向第三方发送数据,并将返回数据存储到 ES 数据表中。

不同点

  • reader 公式:属于提数公式,除了将 Api 返回数据存入 ES 数据表外,还可以往本报表填充,执行时机等属性与普通提数公式类似,多用于查询类的 Api 接口。
  • writer 公式:属于回写公式,一般用于第三方的增、删、改 Api 接口,执行时机等属性与回写公式类似。

三、常见使用实例

1. Token 的获取及使用方法

WebApi 定义(完全按照接口文档定义):

Token WebApi定义1
Token WebApi定义2
Token WebApi定义3

表间公式定义:

  • 公式1:在模板【在职员工列表】中定义 WebApi Reader 公式,每隔两小时刷新最新 token 到 ES 数据表。
  • 公式2:在模板【在职员工列表】中定义提数公式,从 ES 数据表获取最新 token。
  • 公式3:在模板【在职员工列表】中定义 WebApi Reader 公式,调用需要 token 的接口。

三个公式视为一个组合:执行公式3前,需先执行公式1和公式2,才能保证 token 的正确性(token 需每两小时刷新一次,不能频繁获取)。

公式1
公式1:定时刷新 token
公式2
公式2:从数据表读取 token
公式3
公式3:使用 token 调用目标接口

2. 第三方数据分页提取:利用筛选条件改变后的时机多次调用

当第三方接口要求分页提取数据时,利用"筛选条件改变后"执行时机,通过辅助字段驱动多次调用,直到数据全部取回为止。

WebApi 定义(完全按照接口文档定义):

分页WebApi定义1
分页WebApi定义2
分页WebApi定义3
分页WebApi定义4

模板中的辅助字段:

辅助字段
辅助字段(驱动分页循环调用)

表间公式设置为"筛选条件改变后"执行:

筛选条件改变后执行

执行原理:新建打开时第一次执行传递 offset=0, size=50;返回的 next_list 值填入辅助字段,触发第二次执行传递 offset=50, size=50;以此类推,直到 next_list 为空(条件取值替换为 -1),不满足执行条件,循环停止。

分页原理1
分页原理2

3. 加密算法和函数的使用

部分第三方接口(如腾讯云)要求请求头携带签名参数,需要使用加密算法生成。勤哲支持在公式中使用 HMAC-SHA256 等加密函数,配合 Unix 时间戳、随机整数实现完整的签名流程。

WebApi 定义:

加密WebApi定义1
加密WebApi定义2

文档中要求的请求头参数(必填):

请求头参数
腾讯云接口所需请求头参数

公式中为请求头参数赋值的方式:

请求头赋值

关键参数说明:

  • 固定值:可不填,参照接口文档。
  • SecretId:在开放平台获取,存到模板中防止泄露。
  • Unix 时间戳:由提数公式获取当前时间戳并填入本报表,超过5分钟会引起签名错误(需注意执行顺序)。
  • 随机正整数:利用 Excel 函数生成。
  • 签名:按接口文档的加密说明,使用勤哲内置加密函数(HMAC-SHA256)生成。
  • SecretKey:在开放平台获取,存到模板中防止泄露。
时间戳获取
Unix 时间戳获取
随机整数
随机正整数(Excel函数)
加密说明1
Api文档加密说明(一)
加密说明2
Api文档加密说明(二)
加密公式设置
对应公式中的设置方法