云工作流支持通过集成HTTP调用任意HTTP服务,每次HTTP集成的触发,均会向目标URL地址发起一个HTTP请求。本文介绍云工作流集成HTTP的示例代码、参数说明、返回值说明和支持的集成模式。
示例代码
以下为一个典型的云工作流集成HTTP的示例代码片段。
Type: StateMachine
Name: MyWorkflow
SpecVersion: v1
StartAt: Request
States:
- Type: Task
Name: Request
Action: HTTP:Request
TaskMode: RequestComplete
Description: 调用http示例
Parameters:
url: https://www.example.com
method: Get
End: true
代码解析如下。
Action:固定为
HTTP:Request
。TaskMode:支持请求响应(RequestComplete)和等待用户自定义回调(WaitForCustomCallback)两种执行模式。
Name、Description:根据需要配置能表达业务含义的名称和描述。
参数说明
参数名称 | 是否必选 | 参数说明 | 示例值 |
url | 是 | 请求的URL地址。 需要填写完整的URL地址,包括协议部分。同时,URL的提供者需要确保该地址公网可访问,否则工作流将无法正确的执行该集成。 | https://www.example.com |
method | 是 | 请求发起的HTTP方法。取值说明如下:
| GET |
body | 否 | 发起请求的内容。
|
|
headers | 否 | HTTP请求中使用的请求头。 |
|
返回值说明
业务请求的返回结果,会被包装在一个JSON对象中,示例如下。
{
"Header":{
"Content-Type": "application/json;charset=UTF-8",
"Access-Control-Allow-Methods": "GET,POST,OPTIONS"
},
"Code": 200,
"Body": "hello world"
}
执行模式
云工作流集成HTTP时,仅支持请求响应(RequestComplete )和等待系统回调(WaitForSystemCallback)两种集成模式。
RequestComplete
发起HTTP调用后,当前HTTP请求完成即视为对应的Task任务完成,并以HTTP Server端的返回数据作为当前Task的输出。
WaitForCustomCallback
发起HTTP调用以后,流程执行自动暂停,直到后端系统发起回调后,再恢复执行。回调流程的过程,依赖一个用于区别不同流程、不同执行和不同步骤的Token。该Token会在HTTP调用时,通过Header传递给被调用系统。该Token的key为X-FnF-Http-Callback-Task-Token。
同时,用户也可以在参数中,引用$Context.Current.TaskToken
表达式,自定义Token的key
。