API

通过 HTTP 请求连接外部服务

API 区块让你可以通过 HTTP 请求,经由 API 端点将工作流连接到外部服务。它支持 GET、POST、PUT、DELETE 和 PATCH 等多种方法,几乎可与任何 API 端点交互。

URL*
输入 URL
方法*
Select...
查询参数
查询参数
请求头
请求头
自定义请求头(User-Agent、Accept 等标准请求头会自动添加)
请求体
code
输入 JSON...

概览

API 区块让你可以:

连接外部服务:向 REST API 和 Web 服务发起 HTTP 请求

发送和接收数据:处理响应并转换来自外部来源的数据

集成第三方平台:连接 Stripe、Slack 或自定义 API 等服务

处理身份验证:支持 Bearer 令牌和 API 密钥等多种认证方式

工作原理

API 块通过结构化方式处理 HTTP 请求:

  1. 配置请求:设置 URL、方法、请求头和请求体参数
  2. 执行请求:向指定端点发送 HTTP 请求
  3. 处理响应:处理响应数据、状态码和响应头
  4. 错误处理:通过显式错误路径处理失败的请求

配置选项

URL

API 请求的端点 URL。可以是:

  • 直接在块中输入的静态 URL
  • 从另一个块的输出连接的动态 URL
  • 带路径参数的 URL

方法

选择请求的 HTTP 方法:

  • GET:从服务器检索数据
  • POST:向服务器发送数据以创建资源
  • PUT:更新服务器上的现有资源
  • DELETE:从服务器删除资源
  • PATCH:部分更新现有资源

查询参数

定义将作为查询参数附加到 URL 的键值对。例如:

Key: apiKey
Value: your_api_key_here

Key: limit
Value: 10

这些将作为 ?apiKey=your_api_key_here&limit=10 添加到 URL。

请求头

为你的请求配置 HTTP 请求头。常见请求头包括:

Key: Content-Type
Value: application/json

Key: Authorization
Value: Bearer your_token_here

请求体

对于支持请求体的方法(POST、PUT、PATCH),你可以定义要发送的数据。请求体可以是:

  • 直接在块中输入的 JSON 数据
  • 从另一个块的输出连接的数据
  • 在工作流执行期间动态生成的数据

访问结果

API 请求完成后,你可以访问其输出:

  • <api.data>:来自 API 的响应体数据
  • <api.status>:HTTP 状态码(200、404、500 等)
  • <api.headers>:来自服务器的响应头
  • <api.error>:请求失败时的错误详情

高级功能

动态 URL 构建

使用之前块中的变量动态构建 URL:

// In a Function block before the API
const { userId } = <start>;
return `https://api.example.com/users/${encodeURIComponent(userId)}/profile`;

请求重试

API 块不会自动重试超时、连接失败或 HTTP 429、5xx 响应。请求失败会抛出块错误。请连接块的错误路径以执行恢复逻辑;如需重试,请在工作流中显式设置次数上限和退避等待。仅重试可安全重复的请求。

响应验证

将 Function 块连接到 API 块的正常输出以校验成功响应。失败恢复必须连接到 API 块的错误路径,而不是正常输出之后的 Condition。使用上面的 URL 构建 Function 时,将 API URL 设置为 <function.result>。

const data = <api.data>;
if (!data || typeof data !== 'object') {
  throw new Error('Expected an object response');
}
return data;

输入与输出

  • URL:发送请求的端点

  • 方法:HTTP 方法(GET、POST、PUT、DELETE、PATCH)

  • 查询参数:URL 参数的键值对

  • 请求头:用于认证和内容类型的 HTTP 头

  • 请求体:POST/PUT/PATCH 方法的请求负载

  • api.data:API 调用的响应体数据

  • api.status:服务器返回的 HTTP 状态码

  • api.headers:来自服务器的响应头

  • api.error:请求失败时的错误详情

  • 响应数据:主要 API 响应内容

  • 状态信息:HTTP 状态和错误详情

  • 访问:在 API 调用后的块中可用

示例用例

获取用户个人资料数据

场景:从外部服务检索用户信息

  1. 函数块从输入构造用户 ID
  2. API 块调用 GET /users/{id} 端点
  3. 函数块处理并格式化用户数据
  4. 响应块返回格式化后的个人资料

支付处理

场景:通过 Stripe API 处理支付

  1. 功能块验证支付数据
  2. API 块通过 Stripe 创建支付意图
  3. 条件块处理支付成功/失败
  4. Supabase 块更新数据库中的订单状态

最佳实践

  • 对敏感数据使用环境变量:不要硬编码 API 密钥或凭据
  • 优雅地处理错误:为失败的请求连接错误处理逻辑
  • 验证响应:在处理数据前检查状态码和响应格式
  • 遵守速率限制:注意 API 速率限制并实施适当的节流