[自研开源] MyData 数据集成之环境变量 v0.7.2 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lien321
V2EX    分享创造

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

  •  
  • /li>
  •   lien321 2024 年 3 月 16 日 1313 次点击
    这是一个创建于 666 天前的主题,其中的信息可能已经有所发展或是发生改变。

    数据集成之环境变量 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 的运行环境,比如内部的:开发环境、测试环境、生产环境,外部的第三方厂商环境等;

      image-20240316001430164

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

      image-20240316001720724

      • 变量值来源:
        1. 手动登记变量,配置静态值,需要调整时再修改;
        2. 通过配置定时任务从 API 获取并更新变量值,下图示例是每分钟调用一次认证接口获取令牌 并保存到 token2 变量; image-20240316002035380
      • 使用变量:
        1. 在 API 的 Headers 和 Params 参数值中,通过${变量名}格式获取变量值; image-20240316005253119
        2. 在定时任务的请求参数中通过${变量名}格式获取变量值; image-20240316005637814

    定时任务中使用变量

    基于 数据集成之任务流程 介绍任务执行流程,在任务开始与调用 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()); } 
    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2668 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 03:18 PVG 11:18 LAX 19:18 JFK 22:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86