开源地址:gitee | github
详细介绍:MyData 基于 Web API 的数据集成平台
部署文档:用 Docker 部署 MyData
使用手册:MyData 使用手册
试用体验:https://demo.mydata.work
交流Q群:430089673
介绍
MyData ,一个旨在简化 Web 应用之间数据对接的工具,提高日常工作效率,如其名“我的数据” 旨在让用户更好的掌控和管理数据。
通过界面配置 实现多应用之间 基于API的数据对接。
诚邀体验,免费技术支持,详见 https://blog.csdn.net/tle3212000/article/details/137639827
0.8.1
主要更新内容:
- 新增Web hook推送数据模式;
- API地址支持{PathVariable}模式;
新功能
-
任务管理
- 提供数据类型 增加“调用API”和“接收推送”模式选项,平台提供接口接收数据;
- 提供数据类型 增加“调用API”和“接收推送”模式选项,平台提供接口接收数据;
-
接收推送
- 新增接口,支持web hook或API主动推送数据,实现认证和接收推送的数据,并通过任务执行后续流程;
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping(MdConstant.API_PREFIX_MANAGE + "/integration")
public class IntegrationEndpoint {@Resourceprivate final ITaskService taskService;@Resourceprivate final JobExecutor jobExecutor;@PostMapping("/{task_url}")public R post(@PathVariable("task_url") String taskUrl, @RequestHeader HttpHeaders httpHeaders, @RequestBody String body) {log.info("integration post");return execute(taskUrl, httpHeaders, body);}@PutMapping("/{task_url}")public R put(@PathVariable("task_url") String taskUrl, @RequestHeader HttpHeaders httpHeaders, @RequestBody String body) {log.info("integration put");return execute(taskUrl, httpHeaders, body);}private R execute(String taskUrl, HttpHeaders httpHeaders, String body) {log.info("integration url : {}", taskUrl);log.info("integration headers : {}", httpHeaders);log.info("integration body : {}", body);Assert.notEmpty(taskUrl, "操作失败:地址 {} 无效!", taskUrl);Task task = taskService.findByApiUrl(taskUrl);Assert.notNull(task, "操作失败:地址 {} 无效!", taskUrl);Assert.equals(task.getTaskStatus(), MdConstant.TASK_STATUS_RUNNING, "操作失败:任务未启动 无法执行!");Integer authType = task.getAuthType();if (MdConstant.TASK_AUTH_TYPE_NONE.equals(authType)) {// do nothing} else {// 检查认证参数配置是否有效Map<String, String> authParams = task.getAuthParams();if (CollUtil.isNotEmpty(authParams)) {Assert.notNull(task, "操作失败:认证参数未配置!");}// 校验认证参数if (MdConstant.TASK_AUTH_TYPE_API_KEY.equals(authType)) {checkApiKey(authParams, httpHeaders);} else if (MdConstant.TASK_AUTH_TYPE_BASIC.equals(authType)) {checkBasicAuth(authParams, httpHeaders);} else if (MdConstant.TASK_AUTH_TYPE_HMAC.equals(authType)) {// TODO} else {throw new IllegalArgumentException("操作失败:不支持任务的认证类型!");}}// 执行任务流程 接收数据jobExecutor.acceptData(task, body);return R.success(StrUtil.format("任务 [{}] 开始执行,请查看日志。", task.getTaskName()));}// ...
}
- API管理
- url支持
{field}
格式的变量 适配PathVariable模式,调用API时从数据中提取指定字段值并替换;
- url支持
优化
-
任务管理
-
优化cron编辑器,减少占用空间;
-
简化任务卡片,其他信息通过点击显示;
-
订阅消费支持选择来源任务,以便指定触发执行的前置任务;
-
消费数据类型 增加“单数据模式”开关,以便发送一条记录时 用集合或单个对象;
-
增加下次执行时间,以便了解任务运行情况;
-
-
定时任务
-
任务日志 提前到存入缓存时就生成,以便了解任务运行情况;
-
增加数据对比,减少无变更数据的更新写入操作;
-
修复
-
任务管理
- 消费数据类型任务,向API发送业务数据后 修复未接收返回和更新自定义变量的问题;
-
定时任务
-
增加数据批次标识,解决分批获取数据后订阅任务丢失数据问题;
-
修复过滤条件值类型不匹配问题;
-