工作流 API 参考

关于工作流 API 的详细文档

Dapr 提供了与工作流交互的功能,并自带一个内置的 dapr 组件。

启动工作流请求

使用指定名称启动一个工作流实例,并可选地指定一个实例 ID。

POST http://localhost:3500/v1.0/workflows/<workflowComponentName>/<workflowName>/start[?instanceID=<instanceID>]

请注意,工作流实例 ID 只能包含字母、数字、下划线和破折号。

URL 参数

参数描述
workflowComponentName对于 Dapr 工作流使用 dapr
workflowName标识工作流类型
instanceID(可选)为特定工作流的每次运行创建的唯一值

请求内容

任何请求内容都将作为输入传递给工作流。Dapr API 会原样传递内容,不会尝试解释。

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500请求格式正确,但 Dapr 代码或底层组件出错

响应内容

API 调用将返回如下的响应:

{
    "instanceID": "12345678"
}

终止工作流请求

终止具有指定名称和实例 ID 的正在运行的工作流实例。

POST http://localhost:3500/v1.0/workflows/<workflowComponentName>/<instanceId>/terminate

URL 参数

参数描述
workflowComponentName对于 Dapr 工作流使用 dapr
instanceId为特定工作流的每次运行创建的唯一值

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500请求格式正确,但 Dapr 代码或底层组件出错

响应内容

此 API 不返回任何内容。

触发事件请求

对于支持订阅外部事件的工作流组件,例如 Dapr 工作流引擎,可以使用以下“触发事件”API 将命名事件传递给特定的工作流实例。

POST http://localhost:3500/v1.0/workflows/<workflowComponentName>/<instanceID>/raiseEvent/<eventName>

URL 参数

参数描述
workflowComponentName对于 Dapr 工作流使用 dapr
instanceId为特定工作流的每次运行创建的唯一值
eventName要触发的事件名称

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500请求格式正确,但 Dapr 代码或底层组件出错

响应内容

无。

暂停工作流请求

暂停一个正在运行的工作流实例。

POST http://localhost:3500/v1.0/workflows/<workflowComponentName>/<instanceId>/pause

URL 参数

参数描述
workflowComponentName对于 Dapr 工作流使用 dapr
instanceId为特定工作流的每次运行创建的唯一值

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500Dapr 代码或底层组件出错

响应内容

无。

恢复工作流请求

恢复一个已暂停的工作流实例。

POST http://localhost:3500/v1.0/workflows/<workflowComponentName>/<instanceId>/resume

URL 参数

参数描述
workflowComponentName对于 Dapr 工作流使用 dapr
instanceId为特定工作流的每次运行创建的唯一值

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500Dapr 代码或底层组件出错

响应内容

无。

清除工作流请求

使用工作流的实例 ID 从您的状态存储中清除工作流状态。

POST http://localhost:3500/v1.0/workflows/<workflowComponentName>/<instanceId>/purge

URL 参数

参数描述
workflowComponentName对于 Dapr 工作流使用 dapr
instanceId为特定工作流的每次运行创建的唯一值

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500Dapr 代码或底层组件出错

响应内容

无。

获取工作流请求

获取给定工作流实例的信息。

GET http://localhost:3500/v1.0/workflows/<workflowComponentName>/<instanceId>

URL 参数

参数描述
workflowComponentName对于 Dapr 工作流使用 dapr
instanceId为特定工作流的每次运行创建的唯一值

HTTP 响应代码

代码描述
200正常
400请求格式错误
500请求格式正确,但 Dapr 代码或底层组件出错

响应内容

API 调用将返回如下的 JSON 响应:

{
  "createdAt": "2023-01-12T21:31:13Z",
  "instanceID": "12345678",
  "lastUpdatedAt": "2023-01-12T21:31:13Z",
  "properties": {
    "property1": "value1",
    "property2": "value2",
  },
  "runtimeStatus": "RUNNING",
 }
参数描述
runtimeStatus工作流实例的状态。值包括:"RUNNING""COMPLETED""CONTINUED_AS_NEW""FAILED""CANCELED""TERMINATED""PENDING""SUSPENDED"

组件格式

一个 Dapr workflow.yaml 组件文件具有以下结构:

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: <NAME>
spec:
  type: workflow.<TYPE>
  version: v1.0-alpha1
  metadata:
  - name: <NAME>
    value: <VALUE>
设置描述
metadata.name工作流组件的名称。
spec/metadata由工作流组件指定的附加元数据参数

然而,Dapr 附带一个内置的基于 Dapr actor 的 dapr 工作流组件。使用内置的 Dapr 工作流组件不需要组件文件。

下一步