[ PROMPT_NODE_28146 ]
http_api_integration
[ SKILL_DOCUMENTATION ]
# HTTP API 集成模式
**用例**:从 REST API 获取数据、进行转换并在工作流中使用。
---
## 模式结构
触发器 → HTTP 请求 → [转换] → [动作] → [错误处理]
**关键特性**:带有错误处理的外部数据获取
---
## 核心组件
### 1. 触发器
**选项**:
- **定时任务 (Schedule)** - 定期获取(最常见)
- **Webhook** - 由外部事件触发
- **手动 (Manual)** - 按需执行
### 2. HTTP 请求节点
**目的**:调用外部 REST API
**配置**:
javascript
{
method: "GET", // GET, POST, PUT, DELETE, PATCH
url: "https://api.example.com/users",
authentication: "predefinedCredentialType",
sendQuery: true,
queryParameters: {
"page": "={{$json.page}}",
"limit": "100"
},
sendHeaders: true,
headerParameters: {
"Accept": "application/json",
"X-API-Version": "v1"
}
}
### 3. 响应处理
**目的**:提取并转换 API 响应数据
**典型流程**:
HTTP 请求 → Code (解析) → Set (映射字段) → 动作
### 4. 动作
**常见动作**:
- 存储到数据库
- 发送到另一个 API
- 创建通知
- 更新电子表格
### 5. 错误处理
**目的**:优雅地处理 API 故障
**错误触发工作流**:
错误触发器 → 记录错误 → 通知管理员 → 重试逻辑 (可选)
---
## 常见用例
### 1. 数据获取与存储
**流程**:定时任务 → HTTP 请求 → 转换 → 数据库
**示例**(获取 GitHub issues):
1. 定时任务 (每小时)
2. HTTP 请求
- 方法: GET
- URL: https://api.github.com/repos/owner/repo/issues
- 认证: Bearer Token
- 查询: state=open
3. Code (按标签过滤)
4. Set (映射到数据库架构)
5. Postgres (upsert issues)
**响应处理**:
javascript
// Code 节点 - 过滤 issues
const issues = $input.all();
return issues
.filter(item => item.json.labels.some(l => l.name === 'bug'))
.map(item => ({
json: {
id: item.json.id,
title: item.json.title,
created_at: item.json.created_at
}
}));
### 2. API 到 API 集成
**流程**:触发器 → 从 API A 获取 → 转换 → 发送到 API B
**示例**(Jira 到 Slack):
1. 定时任务 (每15分钟)
2. HTTP 请求 (GET 今日更新的 Jira 工单)
3. IF (检查工单是否存在)
4. Set (格式化为 Slack 消息)
5. HTTP 请求 (POST 到 Slack webhook)
### 3. 数据增强
**流程**:触发器 → 获取基础数据 → 调用增强 API → 合并