D: 🚀 n8n의 HTTP Node는 외부 API와의 연결을 쉽게 만들어주는 강력한 도구입니다. 이번 포스팅에서는 HTTP Node를 활용해 다양한 API 인증 방식을 처리하고, 실전에서 바로 쓸 수 있는 데이터 처리 예제까지 상세히 알아보겠습니다.
🔑 1. HTTP Node 기본 구조 이해하기
HTTP Node는 REST API 호출을 위한 핵심 노드로, 다음과 같은 주요 설정 항목이 있습니다:
- URL: API 엔드포인트 주소
- Method: GET, POST, PUT, DELETE 등
- Headers: 인증 토큰, Content-Type 등
- Query Parameters: URL 파라미터
- Body: POST/PUT 요청 시 전송할 데이터
예시: 간단한 GET 요청
{
"url": "https://api.example.com/users",
"method": "GET",
"headers": {
"Accept": "application/json"
}
}
🔐 2. 주요 API 인증 방식별 설정 방법
(1) Basic Auth
- 아이디와 비밀번호를 Base64로 인코딩해 헤더에 추가합니다.
"headers": { "Authorization": "Basic ${BASE64_ENCODED_CREDENTIALS}" }
> TIP: n8n의 Credentials 기능으로 안전하게 저장할 수 있습니다!
(2) API Key
- 키를 헤더나 쿼리 파라미터로 전달합니다.
// 헤더 방식 "headers": { "X-API-KEY": "your-api-key" }
// 쿼리 파라미터 방식 “url”: “https://api.example.com/data?api_key=your-api-key“
#### **(3) OAuth 2.0**
- n8n의 **OAuth2 API** 노드와 연동해 액세스 토큰을 자동 갱신합니다.
```json
"headers": {
"Authorization": "Bearer ${OAUTH2_ACCESS_TOKEN}"
}
(4) JWT (JSON Web Token)
- JWT 생성 후 헤더에 추가합니다.
"headers": { "Authorization": "Bearer ${GENERATED_JWT}" }
🛠 3. 실전 데이터 처리 예제
예제 1: 날씨 API에서 데이터 가공하기
- OpenWeatherMap API 호출 후 필요한 필드만 추출:
{ "url": "https://api.openweathermap.org/data/2.5/weather?q=Seoul&appid=YOUR_KEY", "method": "GET", "response": { "output": { "temp": "{{$response.body.main.temp}}", "humidity": "{{$response.body.main.humidity}}" } } }
예제 2: Slack에 메시지 보내기
- Slack Webhook을 활용한 POST 요청:
{ "url": "https://hooks.slack.com/services/YOUR_WEBHOOK", "method": "POST", "body": { "text": "🚨 n8n에서 알림이 도착했습니다!", "channel": "#general" } }
예제 3: 페이징 처리된 API 데이터 수집
- 페이지별 데이터를 반복 처리 (Loop 노드와 조합):
// 첫 페이지 호출 "url": "https://api.example.com/data?page=1", // 다음 페이지는 {{$node["Loop"].json["nextPage"]}}로 동적 할당
💡 4. 문제 해결 팁
- 429 Too Many Requests:
Rate Limit
발생 시 Delay Node 추가 - 401 Unauthorized: Credentials 재확인 또는 토큰 갱신
- JSON 파싱 오류:
JSON.parse()
대신 n8n의 내장 표현식 사용
📌 마무리
n8n의 HTTP Node는 API 연동의 핵심입니다! 인증 방식과 데이터 가공 방법을 익히면,
📊 CRM, 📨 메시징 플랫폼, 🌐 공공 데이터 등 다양한 서비스와 연동이 가능해집니다.
도전해보세요!
- 연습용 API: JSONPlaceholder
- 고급 활용: Webhook 수신 + Conditional Logic 조합
궁금한 점은 댓글로 남겨주세요! 👇