apijson json服务编排 · Issue #482 · Tencent/APIJSON · GitHub
Skip to content

apijson json服务编排 #482

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions