响应
格式化并返回结构化 API 响应
响应块为 API 调用构建结构化响应。它通常放在分支末尾,用于整理该分支的结果;它不是会停止整个工作流的“返回”语句。
通常将响应块放在分支末尾。构建响应本身不会停止工作流中其他已连接的路径。
概述
响应块使您能够:
格式化 API 响应:将工作流结果结构化为正确的 HTTP 响应
设置状态码:根据工作流结果配置适当的 HTTP 状态码
控制标头:为 API 响应添加自定义标头
转换数据:将工作流变量转换为客户端友好的响应格式
工作原理
响应块准备 API 响应:
- 收集数据:收集来自之前块的变量和输出
- 格式化响应:根据您的配置结构化数据
- 设置 HTTP 详细信息:应用状态码和标头
- 返回数据:生成
response对象,供 API 在执行完成后用作 HTTP 响应
何时需要响应块
- API 端点:当您的工作流通过 API 调用时,响应块会格式化返回数据
- 测试:在测试工作流时查看格式化结果
构建响应的两种方式
构建器模式(推荐)
用于构建响应结构的可视化界面:
- 拖放字段
- 轻松引用工作流变量
- 响应结构的可视化预览
编辑器模式(高级)
直接编写 JSON:
- 完全控制响应格式
- 支持复杂的嵌套结构
- 使用
<variable.name>语法表示动态值
配置选项
响应数据
响应数据是将发送回 API 调用方的主要内容。它应格式化为 JSON,并且可以包括:
- 静态值
- 使用
<variable.name>语法对工作流变量的动态引用 - 嵌套对象和数组
- 任何有效的 JSON 结构
状态码
为响应设置 HTTP 状态码。常见状态码包括:
- 200: 正常 - 标准成功响应
- 201: 已创建 - 资源创建成功
- 204: 无内容 - 成功但无响应体
- 400: 错误请求 - 无效的请求参数
- 401: 未授权 - 需要身份验证
- 404: 未找到 - 资源不存在
- 422: 无法处理的实体 - 验证错误
- 500: 内部服务器错误 - 服务器端错误
- 502: 错误网关 - 外部服务错误
- 503: 服务不可用 - 服务暂时不可用
如果未指定,默认状态码为 200。
响应头
配置要包含在响应中的其他 HTTP 头。
头信息以键值对形式配置:
| 键 | 值 |
|---|---|
| Content-Type | application/json |
| Cache-Control | no-cache |
| X-API-Version | 1.0 |
示例用例
API 端点响应
场景:从搜索 API 返回结构化数据
- 工作流处理搜索查询并获取结果
- 函数块格式化并分页结果
- 响应块返回包含数据、分页和元数据的 JSON
- 客户端收到带有 200 状态的结构化响应
Webhook 确认
Response 不控制 webhook 确认响应。Webhook 端点先将工作流加入队列,并在执行完成前确认请求。Response 可以构建工作流输出,但其状态码、响应头和正文不会作为该 webhook 的确认响应返回。
错误响应处理
场景:返回适当的错误响应
- 条件块检测到验证失败或系统错误
- 路由将流程指向错误处理路径
- 响应块返回 400/500 状态码及错误详情
- 客户端收到结构化的错误信息
输入与输出
响应数据:响应体的 JSON 结构
状态码:HTTP 状态码(默认:200)
响应头:自定义 HTTP 响应头,键值对格式
模式:用于构建响应的构建器或编辑器模式
response.data:结构化的响应体
response.status:发送的 HTTP 状态码
response.headers:响应中包含的响应头
HTTP 响应:发送给 API 调用方的完整响应
执行行为:不会停止工作流中其他已连接的路径
放置位置:通常位于分支末尾
变量引用
使用 <variable.name> 语法,将工作流变量动态插入到响应中:
{
"user": {
"id": "<variable.userId>",
"name": "<variable.userName>",
"email": "<variable.userEmail>"
},
"query": "<variable.searchQuery>",
"results": "<variable.searchResults>",
"totalFound": "<variable.resultCount>",
"processingTime": "<variable.executionTime>ms"
}变量名称区分大小写,必须与工作流中的可用变量完全匹配。
最佳实践
- 使用有意义的状态码:选择能准确反映工作流结果的适当 HTTP 状态码
- 保持响应结构一致:在所有 API 端点中保持一致的 JSON 结构,以提升开发者体验
- 包含相关元数据:添加时间戳和版本信息,以便调试和监控
- 优雅地处理错误:在工作流中使用条件逻辑设置适当的错误响应,并附带描述性消息
- 验证变量引用:在响应块执行之前,确保所有引用的变量都存在并包含预期的数据类型