跳到主要内容

API 文档

重点API

创建工作流

  • URL:/flow/bg/manage/descriptor/add_descriptor.json
  • 请求方式:POST
  • 请求参数说明
参数名称必填类型说明
business_idString工作流业务ID
feature_nameString工作流服务名称
aliasString工作流别名
  • 请求Body参数:工作流yaml定义

  • 请求示例

curl --location --request POST 'http://127.0.0.1:8080/flow/bg/manage/descriptor/add_descriptor.json?business_id=demoFlowTest &feature_name=demoFlowTest &alias=release' \
--header 'Content-Type: text/plain' \
--data-raw '---
version: 20230829
workspace: demoFlowTest
dagName: demoTest
type: flow
tasks:
- category: function
name: startNode
next: endNode
resourceName: http://127.0.0.1:8080/flow/sample/start_node.json
pattern: task_sync
inputMappings:
- target: $.input.right
source: $.context.right
- target: $.input.left
source: $.context.left
outputMappings:
- target: $.context.result_number
source: $.output.result_number
- category: function
name: endNode
resourceName: http://127.0.0.1:8080/flow/sample/end_node.json
pattern: task_sync
inputMappings:
- target: $.input.result_number
source: $.context.result_number
- target: $.input.expect_number
source: $.context.result_number
  • 返回结果
{
"ret": true, // 创建成功:true,创建失败:false
"descriptor_id": "" // 工作流ID
}

执行工作流

  • URL:/flow/submit.json
  • 请求方式:POST
  • 请求参数说明
参数名称必填类型说明
descriptor_idString工作流ID
callbackString执行完成后的回调地址
resource_checkString资源检测规则
  • 请求Body参数:工作流执行的context信息

  • 请求示例

curl -XPOST 'http://127.0.0.1:8080/2/flow/submit.json?descriptor_id=demoFlowTest:demoTest' -d '{"left": 512, "right": 512}' -H'Content-Type:application/json'
  • 返回结果
{
"execution_id": "" // 执行ID
}

任务完成回调

  • URL:/flow/finish.json
  • 请求方式:POST
  • 请求参数说明
参数名称必填类型说明
executionIdString执行ID
taskNameString任务名称
  • 请求Body参数示例
{
"result_type": "SUCCESS", // 任务执行结果:成功 - SUCCESS,失败 - FAIL
"passthrough": {
"execution_id": "882a5c3b-82be-4570-99f7-15bb2b1c0dce",
"task_name": "A" // 完成的任务名称
},
"response": { // 需更新的上下文内容,outputMappings中使用
"xxx": "xxx"
}
}
  • 返回结果
{
"result": "ok"
}

获取工作流执行情况

  • URL:/flow/get.json
  • 请求方式:GET
  • 请求参数说明
参数名称必填类型说明
execution_idString工作流执行ID
briefboolean是否返回简略信息(true:只返回工作流本身执行情况,false:返回工作流及各节点执行情况)
  • 返回结果
{
"ret": {
"execution_id": "", // 工作流执行ID
"dag_status": "RUNNING", // 工作流执行状态
"process": 100, //

工作流当前执行进度(100代表100%)
"tasks": { // brief为true时不返回tasks。tasks是以节点名称为key,节点信息为value的map结构
"startNode": {
"contains_sub": false, // 是否包含子节点
"name": "startNode", // 节点名称
"next": ["endNode"], // 下一个节点名称
"status": "NOT_STARTED", // 节点状态
"task": {
"name": "startNode",
"next": "endNode",
"resourceName": "http://127.0.0.1:8080/flow/sample/start_node.json",
"pattern": "task_sync",
"inputMappings": [ // 输入映射规则
...
],
"outputMappings": [ // 输出映射规则
...
]
}
},
"endNode": {
...
}
}
}
}

其他API

  • 项目已集成Swagger2框架,完整接口描述可在服务启动后访问以下地址
http://127.0.0.1:8080/swagger-ui.html

效果如下图:

SWAGGER