n8n HTTP Request 마스터 : 모든 API 연동하기

목차

    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 데이터 삭제 게시물 삭제

    일반적으로 GETPOST를 가장 많이 사용합니다!

    ③ 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

    3초 선택 가이드

    데이터 조회? → Method: GET
    데이터 생성? → Method: POST + Body
    API Key 인증? → Header에 Authorization: Bearer ...
    JSON 전송? → Header: Content-Type: application/json

    다음 글 예고

    👉 n8n Code 노드 JavaScript : 커스텀 로직 구현


    HTTP Request는 무한한 연동 가능성을 열어줍니다.
    API 문서만 있으면 어떤 서비스도 연결할 수 있습니다!

    댓글