工作流 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 请求格式错误
500 Dapr 代码或底层组件出错

响应内容

无。

恢复工作流请求

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

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

URL 参数

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

HTTP 响应代码

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

响应内容

无。

清除工作流请求

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

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

URL 参数

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

HTTP 响应代码

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

响应内容

无。

获取工作流请求

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

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 工作流组件不需要组件文件。

下一步