组件配置表单约定
框架会扫描注册的组件,根据以下约定生成组件表单配置,用于可视化编辑器渲染组件配置表单。
- 根据组件结构体名,生成组件名称(首字母小写)
- 根据组件结构体的
Config
字段定义的结构体,生成表单项。(字段首字母小写或者通过json tag
自定义) - 根据
New()
方法返回的组件实例Config
字段生成表单项默认值 - 根据组件包名生成分类。组件分类有:transform、action、filter、external、flow、ci、ai、aiot
- endpoint组件 Type 以
endpoint/
作为前缀
# 示例
组件定义:
package transform
// JsTransformNodeConfiguration 节点配置,把可导出的字段生成表单项
type JsTransformNodeConfiguration struct {
//JsScript 配置函数体脚本内容
JsScript string
}
// JsTransformNode 自定义组件结构体,对应生成组件名称:jsTransformNode
type JsTransformNode struct {
//节点配置,如果该节点需要表单配置,必须有`Config`
Config JsTransformNodeConfiguration
jsEngine types.JsEngine
}
// Type 组件类型
func (x *JsTransformNode) Type() string {
return "jsTransform"
}
// New 根据Config字段初始化,获取表单项默认值
func (x *JsTransformNode) New() types.Node {
return &JsTransformNode{Config: JsTransformNodeConfiguration{
JsScript: "return {'msg':msg,'metadata':metadata,'msgType':msgType};",
}
}
}
//其他接口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
自动生成组件配置表单定义:
{
"type": "jsTransform",
"category": "transform",
"fields": [
{
"name": "jsScript",
"type": "string",
"defaultValue": "return {'msg':msg,'metadata':metadata,'msgType':msgType};",
"label": "",
"desc": "",
"validate": "",
"fields": null
}
],
"label": "JsTransformNode",
"desc": "",
"icon": "",
"relationTypes": [
"Success",
"Failure"
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- 组件配置表单定义
- 可以在RuleGo-Editor 可视化编辑器
local_zh.js
文件 对组件配置进行国际化设置。
在 GitHub 上编辑此页 (opens new window)
上次更新: 2024/10/23, 10:13:01