[自研开源] MyData 数据集成之环境变量 v0.7.2

开源地址:gitee | github
详细介绍:MyData 基于 Web API 的数据集成平台
部署文档:用 Docker 部署 MyData
使用手册:MyData 使用手册
试用体验:https://demo.mydata.work
交流Q群:430089673

概述

MyData基于数据资产理念设计,采用Web API作为数据传输通道 完全不侵入任何业务系统;

API通常不是简单的调用即可获得结果,需要传递外部的参数才能得到预期结果;

API的常见场景

  1. 身份验证和授权
    类似Web Token,先通过认证API获取令牌 存储在客户端,随后每次通信都附带令牌;

  2. 参数筛选数据
    当调用API时,通过参数筛选 准确获取所需数据,例如:员工在职状态、订单支付状态等;

  3. 分批获取数据
    当处理大量数据或分页显示数据时,需要分批获取数据,例如:分页参数有 指定页数、每页的数量;

环境&变量

MyData提供两层管理:环境管理变量管理
在这里插入图片描述

  • 环境管理
    结合开发流程、部署环境等场景,统一管理API的运行环境,比如内部的:开发环境、测试环境、生产环境,外部的第三方厂商环境等;
    在这里插入图片描述

  • 变量管理
    按环境隔离管理变量,相同环境下API可共享变量;
    在这里插入图片描述

    • 变量值来源:

      1. 手动登记变量,配置静态值,需要调整时再修改;
      2. 通过配置定时任务从API获取并更新变量值,下图示例是每分钟调用一次认证接口获取令牌 并保存到token2变量;
        在这里插入图片描述
    • 使用变量:

      1. 在API的Headers和Params参数值中,通过${变量名}格式获取变量值;
        在这里插入图片描述
      2. 在定时任务的请求参数中通过${变量名}格式获取变量值;
        在这里插入图片描述

定时任务中使用变量

基于 数据集成之任务流程 介绍任务执行流程,在任务开始与调用API之间 增加环境变量的解析处理;
在这里插入图片描述

以下是任务执行过程代码片段,其中jobVarService.parseVar(taskInfo);是任务开始后的第一步操作,具体变量的解析处理可详见 JobVarService.java

taskInfo.appendLog("任务开始执行");
...
// 标记本次执行是否成功
boolean isJobSuccess = false;
// 获取任务操作类型
int opType = taskInfo.getOpType();

try {
    // 解析并替换api中的环境变量
    jobVarService.parseVar(taskInfo);
    // 根据操作类型 执行读或写
    switch (opType) {
        // 提供数据
        case MdConstant.DATA_PRODUCER:
            ...
            break;
        // 消费数据
        case MdConstant.DATA_CONSUMER:
            ...
            break;
        default:
            throw new RuntimeException("不支持的任务类型:" + opType);
    }

    // 任务执行成功
    isJobSuccess = true;
} catch (Exception e) {
    taskInfo.appendLog("任务执行失败,异常:{}", e.getMessage());
    e.printStackTrace();
} finally {
    // 恢复原生header和param,恢复变量表达式,下次可获取最新变量值
    taskInfo.setReqHeaders(taskInfo.getOriginReqHeaders());
    taskInfo.setReqParams(taskInfo.getOriginReqParams());
}
  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值