Workflow API 参考

Dapr 为用户提供了通过其内置工作流引擎与工作流交互的能力,该引擎使用 Dapr Actors 实现。

要了解如何与工作流引擎交互,请参阅[如何编写](https://docs.dapr.io/zh-hans/developing-applications/building-blocks/workflow/howto-author-workflow/和[管理工作流](https://docs.dapr.io/zh-hans/developing-applications/building-blocks/workflow/howto-manage-workflow/

HTTP API 参考(已弃用)

以下是 Dapr Workflow API 的参考文档。 该 API 已弃用,最终将被移除。

启动工作流请求

使用给定名称启动工作流实例,可选择指定实例 ID。

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

请注意,工作流实例 ID 只能包含字母数字字符、下划线和短横线。

URL 参数

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

请求内容

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

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500请求格式正确,dapr 代码中存在错误

响应内容

API 调用将提供类似以下的响应:

{
    "instanceID": "12345678"
}

终止工作流请求

使用给定名称和实例 ID 终止正在运行的工作流实例。

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

URL 参数

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

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500请求格式正确,dapr 代码中存在错误

响应内容

此 API 不返回任何内容。

触发事件请求

对于支持订阅外部事件的工作流组件(如 Dapr Workflow 引擎),您可以使用以下"触发事件" API 向特定工作流实例传递命名事件。

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

URL 参数

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

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500请求格式正确,dapr 代码或底层组件中存在错误

响应内容

无。

暂停工作流请求

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

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

URL 参数

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

HTTP 响应代码

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

响应内容

无。

恢复工作流请求

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

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

URL 参数

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

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500Dapr 代码中存在错误

响应内容

无。

清除工作流请求

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

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

URL 参数

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

HTTP 响应代码

代码描述
202已接受
400请求格式错误
500Dapr 代码中存在错误

响应内容

无。

获取工作流请求

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

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

URL 参数

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

HTTP 响应代码

代码描述
200OK
400请求格式错误
500Dapr 代码中存在错误

响应内容

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"