Skip to content

ApiFlow DSL 概述

什么是 ApiFlow DSL

ApiFlow是一款基于事件驱动的工作流系统,引擎基于Java实现,拥有专属DSL(Domain Specific Language)特定领域语言 ,该DSL基于于Groovy做为母体实现,其语法是在groovy基础之上加以特定封装和规范。为了保证语法能力同时平衡易用性,该DSL采用半结构化的方式设计,即主体与编排部分是结构化的,而具体任务是半结构化的可以充分发挥groovy语法灵活性。

Groovy 基础要求

阅读本文前你需要有Groovy一定语法基础,可通过下面几道题进行自我检测:

  1. 了解groovy 是基于Java实现,其兼容java语法
  2. 字符串的定义方式与插值方式如: "年龄${18}"
  3. 清楚数据对象的定义 如[name:"小明"]
  4. 了解方法的调用方式 如 println 'hello'
  5. 了解groovy的闭包含义{ }
  6. 你应该能轻松写出以下代码:
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应用:用于与外部应用交互的对象,如通过触发器监听外部事件,或者通过任务发起对外部资源及服务的调用。
  • 隐式对象:工作流运行时自动注入的上下文对象以获得公共配置、流程输入参数、日志对象等。

下一步