n8n HTTP Request 마스터 : 모든 API 연동하기
목차
회사 내부 API를 n8n에서 호출하고 싶습니다. 근데 전용 노드가 없네요?
HTTP Request 하나면 됩니다. API 문서만 있으면 어떤 서비스든 연동 가능합니다.
이 글을 다 읽으면 REST API 호출의 모든 것을 마스터할 수 있습니다.
① n8n HTTP Request 노드 — 만능 연동 도구
HTTP Request는 언제 쓰나요? 다른 노드들 있잖아요.
n8n에 전용 노드가 없는 서비스를 연동할 때 써! 예를 들어 회사 내부 API나 마이너한 서비스들 말이야.
아, 만능 연동 도구인 거네요?
딱 맞아! API 문서만 있으면 어떤 서비스든 연동할 수 있어.
HTTP Request 노드 = 범용 API 호출 도구
전용 노드가 없는 모든 REST API를 연동할 수 있습니다.
② n8n HTTP 메서드 — GET, POST, PUT, DELETE
HTTP 메서드
| 메서드 | 용도 | 예시 |
|---|---|---|
| GET | 데이터 조회 | 사용자 목록 가져오기 |
| POST | 데이터 생성 | 새 게시물 작성 |
| PUT | 데이터 전체 수정 | 사용자 정보 업데이트 |
| PATCH | 데이터 부분 수정 | 이메일만 변경 |
| DELETE | 데이터 삭제 | 게시물 삭제 |
일반적으로 GET과 POST를 가장 많이 사용합니다!
③ n8n HTTP Request 인증 — API Key vs OAuth
인증 방식
| 방식 | 설정 위치 | 대표 서비스 |
|---|---|---|
| API Key | Header 또는 Query | OpenAI, 날씨 API |
| Bearer Token | Authorization 헤더 | JWT 기반 서비스 |
| Basic Auth | 사용자명:비밀번호 | 레거시 API |
| OAuth 2.0 | 토큰 교환 | Google, Slack |
💡 API Key 헤더 설정 예시
// OpenAI API 호출
Header: Authorization
Value: Bearer sk-your-api-key-here
// 커스텀 API Key
Header: X-API-Key
Value: your-api-key
④ n8n HTTP Request Body와 Header 설정
Request Body (JSON)
// 정적 JSON
{
"name": "홍길동",
"email": "hong@example.com"
}
// 동적 JSON (표현식 사용)
{
"name": "{{ $json.name }}",
"email": "{{ $json.email }}",
"timestamp": "{{ $now.toISO() }}"
}
Query Parameters
// URL: https://api.example.com/users?status=active&limit=10
Query Parameters:
Name: status | Value: active
Name: limit | Value: 10
// 동적 파라미터
Name: date | Value: {{ $now.toFormat('yyyy-MM-dd') }}
Custom Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer {{ $json.token }}
X-Request-ID: {{ $execution.id }}
⑤ n8n HTTP Request 실전 API 연동
💡 예제 1: 날씨 API 조회
Method: GET
URL: https://api.openweathermap.org/data/2.5/weather
Query Parameters:
q: Seoul
appid: your-api-key
units: metric
💡 예제 2: Slack Webhook 전송
Method: POST
URL: https://hooks.slack.com/services/xxx/yyy/zzz
Body (JSON):
{
"text": "새 주문이 들어왔습니다!",
"blocks": [...]
}
💡 예제 3: OpenAI Chat 호출
Method: POST
URL: https://api.openai.com/v1/chat/completions
Headers:
Authorization: Bearer sk-your-key
Content-Type: application/json
Body:
{
"model": "gpt-4",
"messages": [
{"role": "user", "content": "{{ $json.question }}"}
]
}
HTTP Request 공식 문서에서 더 많은 옵션을 확인하세요!
Method - GET(조회), POST(생성)
인증 - API Key, Bearer Token
Body - JSON 형식 데이터
Headers - Content-Type, Authorization
데이터 조회? → Method: GET
데이터 생성? → Method: POST + Body
API Key 인증? → Header에 Authorization: Bearer ...
JSON 전송? → Header: Content-Type: application/json
👉 n8n Code 노드 JavaScript : 커스텀 로직 구현
HTTP Request는 무한한 연동 가능성을 열어줍니다.
API 문서만 있으면 어떤 서비스도 연결할 수 있습니다!
댓글
댓글 쓰기