ApiFlow DSL 概述
什么是 ApiFlow DSL
ApiFlow是一款基于事件驱动的工作流系统,引擎基于Java实现,拥有专属DSL(Domain Specific Language)特定领域语言 ,该DSL基于于Groovy做为母体实现,其语法是在groovy基础之上加以特定封装和规范。为了保证语法能力同时平衡易用性,该DSL采用半结构化的方式设计,即主体与编排部分是结构化的,而具体任务是半结构化的可以充分发挥groovy语法灵活性。
Groovy 基础要求
阅读本文前你需要有Groovy一定语法基础,可通过下面几道题进行自我检测:
- 了解groovy 是基于Java实现,其兼容java语法
- 字符串的定义方式与插值方式如:
"年龄${18}" - 清楚数据对象的定义 如
[name:"小明"] - 了解方法的调用方式 如
println 'hello' - 了解groovy的闭包含义
{ } - 你应该能轻松写出以下代码:
def user = [name:"小明",age:18,tags:["高","富","帅"]]
String describe = """
${name.name}是一个good man
它具有 ${user.tags} 的特征
"""
println describe名词解释
- DSL : DSL(Domain Specific Language)特定领域语言为ApiFlow设计的专属语言,后续dsl即代指某个工作流文件本身
- 工作流: 用于完成指定业务的工作流程,其通过事件触发,然后分步骤执行任务,工作流基于DSL编写。
- 触发器:工作流中用于监听指定事件的组件,当事件发生时将触发当前工作流。
- 任务:工作流中的一个具体步骤,用于完成特定任务并获得结果,其包含名称(唯一)、类型、结果等属性。
- 指令: 发起任务执行的指令,其指示了任务执行方式如:普通、异步、判定执行等。
- app应用:用于与外部应用交互的对象,如通过触发器监听外部事件,或者通过任务发起对外部资源及服务的调用。
- 隐式对象:工作流运行时自动注入的上下文对象以获得公共配置、流程输入参数、日志对象等。