HTTP Request 노드#
HTTP Request 노드는 n8n에서 가장 다재다능한 노드 중 하나입니다. REST API가 있는 모든 앱이나 서비스에서 데이터를 조회하기 위해 HTTP 요청을 만들 수 있습니다.
이 노드를 사용하면 REST API 호출을 생성하게 됩니다. 기본 API 용어와 개념에 대한 이해가 필요합니다.
HTTP 요청을 생성하는 방법은 두 가지입니다: 노드 매개변수 구성하거나 curl 명령 가져오기.
Credentials
인증 설정에 대한 안내는 HTTP Request credentials를 참조하세요.
노드 매개변수#
메서드#
요청에 사용할 메서드를 선택하세요:
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
URL#
사용할 엔드포인트를 입력하세요.
인증#
n8n은 사용할 수 있을 때 사전 정의된 자격 증명 유형 옵션을 사용하는 것을 권장합니다. 이는 일반 자격 증명 구성에 비해 자격 증명을 설정하고 관리하는 더 쉬운 방법을 제공합니다.
사전 정의된 자격 증명#
n8n에서 지원하는 통합을 위한 자격 증명으로, 내장 노드와 커뮤니티 노드 모두 포함됩니다. 추가 설정 없이 사용자 정의 작업을 위해 사전 정의된 자격 증명 유형을 사용하세요. 더 많은 정보는 사용자 정의 API 작업을 참조하세요.
일반 자격 증명#
n8n에서 지원하지 않는 통합을 위한 자격 증명입니다. 필요한 API 엔드포인트, 필요한 매개변수 및 인증 방법을 지정하는 것을 포함하여 인증 프로세스를 수동으로 구성해야 합니다.
다음 방법 중 하나를 선택할 수 있습니다:
- Basic auth
- Custom auth
- Digest auth
- Header auth
- OAuth1 API
- OAuth2 API
- Query auth
각 자격 증명 유형을 설정하는 방법에 대한 자세한 내용은 HTTP request credentials를 참조하세요.
쿼리 매개변수 전송#
쿼리 매개변수는 HTTP 요청에 대한 필터 역할을 합니다. 상호작용하는 API가 이를 지원하고 만들고 있는 요청에 필터가 필요하다면 이 옵션을 활성화하세요.
쿼리 매개변수를 지정하세요 다음 중 하나의 옵션을 사용하여:
- 아래 필드 사용: 쿼리 매개변수의 이름/값 쌍을 입력하세요. 더 많은 쿼리 매개변수 이름/값 쌍을 입력하려면 매개변수 추가를 선택하세요. 이름은 필터링할 필드의 이름이며, 값은 필터 값입니다.
- JSON 사용: 쿼리 매개변수를 정의하기 위해 JSON을 입력하세요.
자세한 안내는 서비스의 API 문서를 참조하세요.
헤더 전송#
이 매개변수를 사용하여 요청과 함께 헤더를 전송합니다. 헤더는 요청에 대한 메타데이터 또는 컨텍스트를 포함합니다.
헤더 지정 다음 중 하나의 옵션을 사용하여:
- 아래 필드 사용: 헤더 매개변수의 이름/값 쌍을 입력하세요. 더 많은 헤더 매개변수 이름/값 쌍을 입력하려면 매개변수 추가를 선택하세요. 이름은 설정하려는 헤더이고, 값은 해당 헤더에 대해 전달하고자 하는 값입니다.
- JSON 사용: 헤더 매개변수를 정의하기 위해 JSON을 입력하세요.
자세한 안내는 서비스의 API 문서를 참조하세요.
본문 전송#
API 요청과 함께 본문을 전송해야 하는 경우 이 옵션을 활성화하세요.
그런 다음 전송하려는 본문 내용의 형식과 가장 잘 맞는 본문 내용 유형을 선택하세요.
Form URLencoded#
이 옵션을 사용하여 본문을 application/x-www-form-urlencoded
로 전송합니다.
본문 지정 다음 중 하나의 옵션을 사용하여:
- 아래 필드 사용: 본문 매개변수의 이름/값 쌍을 입력하세요. 더 많은 본문 매개변수 이름/값 쌍을 입력하려면 매개변수 추가를 선택하세요. 이름은 양식 필드 이름이어야 하며, 값은 해당 필드를 설정하려는 값입니다.
- 단일 필드 사용: 형식
fieldname1=value1&fieldname2=value2
로 단일 본문 매개변수에 이름/값 쌍을 입력하세요.
자세한 안내는 서비스의 API 문서를 참조하세요.
Form-Data#
이 옵션을 사용하여 본문을 multipart/form-data
로 전송합니다.
본문 매개변수를 구성하려면 매개변수 유형을 선택하세요:
- Form Data를 선택하여 이름/값 쌍을 입력하세요.
- n8n Binary File을 선택하여 노드가 접근할 수 있는 파일에서 본문을 가져옵니다.
- 이름: 설정할 필드의 ID를 입력하세요.
- 입력 데이터 필드 이름: 처리할 바이너리 파일 데이터가 포함된 들어오는 필드의 이름을 입력하세요.
매개변수 추가를 선택하여 더 많은 매개변수를 입력하세요.
자세한 안내는 서비스의 API 문서를 참조하세요.
JSON#
이 옵션을 사용하여 본문을 JSON으로 전송합니다.
본문 지정은 다음 옵션 중 하나를 사용하여 진행하세요:
- 아래 필드 사용: 본문 매개변수의 이름/값 쌍을 입력하세요. 더 많은 본문 매개변수 이름/값 쌍을 입력하려면 매개변수 추가를 선택하세요.
- JSON 사용: 본문을 정의하기 위해 JSON을 입력하세요.
자세한 안내는 서비스의 API 문서를 참조하세요.
n8n Binary File#
이 옵션을 사용하여 n8n에 저장된 파일의 내용을 본문으로 전송합니다.
파일을 포함하는 들어오는 필드의 이름을 입력 데이터 필드 이름으로 입력하세요.
파일 형식 정리에 대한 자세한 안내는 서비스의 API 문서를 참조하세요.
Raw#
이 옵션을 사용하여 본문에 원시 데이터를 전송합니다.
- Content Type: 원시 본문 콘텐츠에 사용할
Content-Type
헤더를 입력하세요. 전체 MIME 콘텐츠 유형 목록은 IANA 미디어 유형 문서를 참조하세요. - 본문: 전송할 원시 본문 콘텐츠를 입력하세요.
자세한 안내는 서비스의 API 문서를 참조하세요.
노드 옵션#
옵션 추가를 선택하여 이러한 옵션을 보고 선택하세요. 옵션은 별도로 명시되지 않는 한 모든 매개변수에서 사용할 수 있습니다.
쿼리 매개변수에서 배열 형식#
옵션 가용성
이 옵션은 쿼리 매개변수 전송을 활성화할 때만 사용할 수 있습니다.
쿼리 매개변수에 포함된 배열의 형식을 제어하기 위해 이 옵션을 사용하세요. 다음 옵션 중에서 선택하세요:
- 괄호 없음: 배열은 이름=값 형식으로 각 항목을 포맷팅합니다. 예:
foo=bar&foo=qux
. - 괄호만 사용: 노드는 각 배열 이름 뒤에 대괄호를 추가합니다. 예:
foo[]=bar&foo[]=qux
. - 인덱스가 있는 괄호: 노드는 각 배열 이름 뒤에 인덱스 값과 함께 대괄호를 추가합니다. 예:
foo[0]=bar&foo[1]=qux
.
어떤 옵션을 사용할지에 대한 안내는 서비스의 API 문서를 참조하세요.
배치 처리#
많은 수의 입력 항목을 배치 처리하는 방법을 제어하세요:
- 배치당 항목 수: 각 배치에 포함할 입력 항목 수를 입력하세요.
- 배치 간격: 요청 배치 간 대기할 시간을 밀리초 단위로 입력하세요. 배치 간격이 없으려면 0을 입력하세요.
SSL 문제 무시#
기본적으로 n8n은 SSL 인증서 검증이 성공할 경우에만 응답을 다운로드합니다. SSL 인증서 검증이 실패하더라도 응답을 다운로드하려면 이 옵션을 활성화하세요.
소문자 헤더#
헤더 이름을 소문자로 변환할지(활성화, 기본값) 또는 그렇지 않을지를 선택하세요(비활성화).
리디렉션#
리디렉션을 따를지를 선택하세요(기본적으로 활성화) 또는 따르지 않을지를 선택하세요(비활성화). 활성화되면 요청이 따라야 할 최대 리디렉션 수를 최대 리디렉션에 입력하세요.
응답#
이 옵션을 사용하여 예상 API 응답에 대한 세부정보를 설정할 수 있습니다. 다음을 포함합니다:
- 응답 헤더 및 상태 포함: 기본적으로 노드는 본체만 반환합니다. 이 옵션을 활성화하면 본체뿐만 아니라 전체 응답(헤더 및 응답 상태 코드)을 반환합니다.
- 결코 오류 없음: 기본적으로 노드는 응답이 2xx 코드로 반환될 때만 성공을 반환합니다. 이 옵션을 활성화하면 반환된 코드에 관계없이 성공을 반환합니다.
- 응답 형식: 데이터가 반환될 형식을 선택합니다. 다음 중에서 선택합니다:
- 자동 감지 (기본값): 노드는 반환된 데이터를 기반으로 응답을 감지하고 형식을 지정합니다.
- 파일: 이 옵션을 선택하여 응답을 파일에 저장합니다. 필드에 출력 넣기에서 파일이 반환될 필드 이름을 입력합니다.
- JSON: 이 옵션을 선택하여 응답을 JSON 형식으로 형식화합니다.
- 텍스트: 이 옵션을 선택하여 응답을 일반 텍스트 형식으로 형식화합니다. 필드에 출력 넣기에서 파일이 반환될 필드 이름을 입력합니다.
페이지 매김#
이 옵션을 사용하여 결과를 페이지로 나누며, API가 단일 호출로 반환하기에 너무 큰 쿼리 결과를 처리하는 데 유용합니다.
API 데이터를 먼저 검사하기
페이지 매김을 위한 일부 옵션은 사용하는 API의 반환된 데이터에 대한 지식이 필요합니다. 페이지 매김을 설정하기 전에 API 문서를 확인하거나 페이지 매김 없이 API 호출을 수행하여 반환되는 데이터를 확인하세요.
페이지 매김 이해하기
페이지 매김은 대량의 데이터를 여러 페이지로 나누는 것을 의미합니다. 각 페이지의 데이터 양은 설정한 제한에 따라 다릅니다.
예를 들어, /users
라는 엔드포인트에 API 호출을 합니다. API는 300명의 사용자에 대한 정보를 반환하려고 하지만, 이는 API가 단일 응답으로 보낼 수 있는 데이터 양을 초과합니다.
API가 페이지 매김을 지원하는 경우 데이터를 점진적으로 가져올 수 있습니다. 이를 위해 페이지 매김 제한과 페이지 번호 또는 URL을 사용하여 API에 어떤 페이지를 보낼지를 알려 /users
를 호출합니다. 이 예에서, 예를 들어, 10의 제한을 사용하고 페이지 0에서 시작한다고 가정합니다. API는 응답에서 처음 10명의 사용자를 보냅니다. 그런 다음 페이지 번호를 1 증가시켜 API를 다시 호출하여 다음 10개의 결과를 가져옵니다.
페이지 매김 설정을 구성하십시오:
- 페이지 매김 모드:
- 끄기: 페이지 매김을 끕니다.
- 각 요청에서 매개변수 업데이트: 각 요청에 대해 동적으로 매개변수를 설정해야 할 때 사용합니다.
- 응답에 다음 URL 포함: API 응답에 다음 페이지의 URL이 포함된 경우 사용합니다. 다음 URL을 설정하는 데 표현식을 사용합니다.
예제 설정은 HTTP 요청 노드 요리책 | 페이지 매김를 참조하십시오.
n8n은 페이지 매김을 사용할 때 HTTP 노드 요청 및 응답을 처리하기 위해 내장 변수를 제공합니다:
변수 (Variable) | 설명 (Description) |
---|---|
$pageCount |
페이지네이션 카운트. 노드가 가져온 페이지 수를 추적합니다. |
$request |
HTTP 노드가 보낸 요청 객체입니다. |
$response |
HTTP 호출의 응답 객체입니다. $response.body , $response.headers , $response.statusCode 를 포함합니다. body 및 headers 의 내용은 API에서 반환하는 데이터에 따라 달라집니다. |
API 차이점
각 API는 페이지네이션을 구현하는 방식이 다릅니다. 사용 중인 API의 문서를 확인하여 다음과 같은 사항을 파악해야 합니다:
- API가 다음 페이지의 URL을 제공하는가?
- 페이지 크기 또는 페이지 번호에 대한 API별 제한이 있는가?
- API가 반환하는 데이터의 구조는 어떻게 구성되어 있는가?
프록시#
HTTP 프록시를 지정해야 할 경우 이 옵션을 사용하십시오.
요청이 사용할 프록시를 입력합니다.
타임아웃#
서버가 응답 헤더를 전송하고(응답 본체를 시작하는 데) 얼마나 오래 대기할지를 설정하기 위해 이 옵션을 사용하십시오. 노드는 초기 응답에 대해 이 값을 초과하는 요청을 중단합니다.
밀리세컨드 단위로 대기할 타임아웃 시간을 입력하십시오.
curl 명령 가져오기#
curl는 URL을 사용하여 데이터를 전송하기 위한 명령줄 도구 및 라이브러리입니다.
curl을 사용하여 REST API를 호출할 수 있습니다. 사용하려는 서비스의 API 문서가 curl 예제를 제공하는 경우, 문서에서 복사하여 n8n에 붙여넣어 HTTP Request 노드를 구성할 수 있습니다.
curl 명령 가져오기:
- HTTP Request 노드의 Parameters 탭에서 Import cURL을 선택합니다. Import cURL command 모달이 열립니다.
- 텍스트 상자에 curl 명령을 붙여넣습니다.
- Import를 선택합니다. n8n이 요청 구성을 노드 필드로 로드합니다. 이는 기존 구성을 덮어씁니다.
템플릿 및 예제#
일반적인 문제#
일반적인 질문이나 문제 및 제안된 해결책에 대해서는 Common Issues를 참조하세요.