Skip to content

apijson json服务编排 #482

@cloudAndMonkey

Description

@cloudAndMonkey

Description

@TommyLemon
功能描述:
一个服务编排的伪码流程设计
将伪码转换为 apijson json、前置、后置函数、javascript、redis、elasticSearch等
并且能够mork每一步,执行中间流程,还能查询每个阶段执行的sql语句,及结果.

json格式:

{
    "@transaction": true, 
    "id@-()": "getCurrentUserId()", // 前置函数
    "@post": [
        "xxx"
    ], 
    "xxx": {
     "@method": "xxx",
      "@version": "", // 版本,控制校验
      "@datasource": "" // 数据源相关配置
     // 分表规则等,后面再说
   }
"@explain": true
}

1、独立定义一个url method, 通过解析不同method执行不同流程
和已有method区分开,避免歧义
2、最外层新增传参 "transaction": true 来指定开启事务
3、控制每条语句的数据源
4、完善 “@Explain"
如果没有执行计划,则返回sql语句. 能够在 reponse返回值中, 看到json中执行的每条sql,方便排错
5、@Version支持
定义不同场景的 新增、修改、删除等执行规则. 请通过version版本区分
6、前置函数

  1. 要能拿到其他数据源
  2. 能拿到json执行过程中的数据
  3. 拿到当前数据源(和外部json一个事物执行)
  4. 从数据库/或其他数据源 查询获取对照关系
    组装数据, 调用对应数据源的api方法执行即可
  5. 前置函数,能调用其他函数
    把一些计算, 执行,计算 等 放到一个函数进行整合
    还没细化
    7、支持mork
    通过伪码,分解为不同 阶段 的json语句执行

测试点:
1、测试 一个json多条语句,后置函数啥时候执行
2、操作其他数据源, 事物是json执行完才会提交, 需要保证一致性
3、redis、elasticSearch、javascript、lua等功能测试

Metadata

Metadata

Assignees

No one assigned

    Labels

    Ecosystem 周边生态完善生态(Go语言版、更多Demo、周边工具等)Enhancement 增强增强功能、提高性能等

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions