工作流 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>
注意
订阅事件的具体机制取决于您使用的工作流组件。Dapr 工作流有一种订阅外部事件的方式,但其他工作流组件可能有不同的方式。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
注意
只有状态为COMPLETED
、FAILED
或 TERMINATED
的工作流可以被清除。
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 工作流组件不需要组件文件。
下一步
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.