写点什么

数据集成之环境变量 v0.7.2

作者:LIEN
  • 2024-03-16
    江苏
  • 本文字数:1063 字

    阅读完需:约 3 分钟

数据集成之环境变量 v0.7.2

概述

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


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

API 的常见场景

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

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

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

  4. ...

环境 &变量

MyData 提供两层管理:环境管理变量管理


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


  • 变量管理按环境隔离管理变量,相同环境下 API 可共享变量;


  • 变量值来源:

  • 手动登记变量,配置静态值,需要调整时再修改;

  • 通过配置定时任务从 API 获取并更新变量值,下图示例是每分钟调用一次认证接口获取令牌 并保存到 token2 变量;

  • 使用变量:

  • 在 API 的 Headers 和 Params 参数值中,通过${变量名}格式获取变量值;


  • 在定时任务的请求参数中通过${变量名}格式获取变量值;



定时任务中使用变量

基于 数据集成之任务流程 介绍任务执行流程,在任务开始与调用 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());}
复制代码


发布于: 刚刚阅读数: 5
用户头像

LIEN

关注

还未添加个人签名 2020-04-25 加入

还未添加个人简介

评论

发布
暂无评论
数据集成之环境变量 v0.7.2_开源_LIEN_InfoQ写作社区