노드 빌더를 위한 HTTP request 헬퍼
n8n v2.29n8n은 대부분의 복잡성을 추상화하여 HTTP 요청을 만들 수 있는 유연한 헬퍼를 제공합니다. 이 문서의 정보는 프로그래매틱 스타일을 사용하는 노드 빌드에만 해당합니다. execute 함수 내부에서 헬퍼를 호출합니다. url은 필수입니다.
n8n은 대부분의 복잡성을 추상화하여 HTTP 요청을 만들 수 있는 유연한 헬퍼를 제공합니다.
프로그래매틱 스타일 전용
이 문서의 정보는 프로그래매틱 스타일을 사용하는 노드 빌드에만 해당합니다. 선언적 스타일 노드에는 적용되지 않습니다.
사용법#
execute 함수 내부에서 헬퍼를 호출합니다.
// If no auth needed
const response = await this.helpers.httpRequest(options);
// If auth needed
const response = await this.helpers.httpRequestWithAuthentication.call(
this,
'credentialTypeName', // For example: pipedriveApi
options,
);
options는 객체입니다.
{
url: string;
headers?: object;
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD';
body?: FormData | Array | string | number | object | Buffer | URLSearchParams;
qs?: object;
arrayFormat?: 'indices' | 'brackets' | 'repeat' | 'comma';
auth?: {
username: string,
password: string,
};
disableFollowRedirect?: boolean;
encoding?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
skipSslCertificateValidation?: boolean;
returnFullResponse?: boolean;
proxy?: {
host: string;
port: string | number;
auth?: {
username: string;
password: string;
},
protocol?: string;
};
timeout?: number;
json?: boolean;
}
url은 필수입니다. 다른 필드는 모두 선택 사항입니다. 기본 메서드는 GET입니다.
가능한 필드에 대한 몇 가지 참고 사항입니다.
body: JSON 페이로드에는 일반 JavaScript 객체를, 파일 업로드에는 버퍼를,multipart/form-data에는 FormData 인스턴스를,application/x-www-form-urlencoded에는URLSearchParams를 사용할 수 있습니다.headers: 키-값 쌍입니다.body가FormData의 인스턴스인 경우 n8n이 자동으로content-type: multipart/form-data를 추가합니다.body가URLSearchParams의 인스턴스인 경우 n8n이content-type: application/x-www-form-urlencoded를 추가합니다.- 이 동작을 재정의하려면
content-type헤더를 설정하세요.
arrayFormat: 쿼리 문자열에const qs = {IDs: [15,17]}와 같이 데이터 배열이 포함된 경우,arrayFormat값에 따라 n8n이 이를 포맷하는 방식이 결정됩니다.indices(기본값):{ a: ['b', 'c'] }를a[0]=b&a[1]=c로brackets:{ a: ['b', 'c'] }를a[]=b&a[]=c로repeat:{ a: ['b', 'c'] }를a=b&a=c로comma:{ a: ['b', 'c'] }를a=b,c로
auth: 기본(Basic) 인증에 사용됩니다.username과password를 제공하세요. n8n은 이를 생략하고 대신helpers.httpRequestWithAuthentication(...)을 사용할 것을 권장합니다.disableFollowRedirect: 기본적으로 n8n은 리디렉션을 따라갑니다. 이를 방지하려면 이 값을 true로 설정할 수 있습니다.skipSslCertificateValidation: 적절한 인증서 없이 HTTPS 서비스를 호출할 때 사용됩니다.returnFullResponse: 본문(body)만 반환하는 대신, 다음과 같은 형식으로 더 많은 데이터를 포함한 객체를 반환합니다:{body: body, headers: object, statusCode: 200, statusMessage: 'OK'}encoding: n8n은 콘텐츠 유형을 감지할 수 있지만,arrayBuffer를 지정하면 읽고 상호작용할 수 있는 버퍼를 받을 수 있습니다.
예시#
예시는 Mattermost node를 참조하세요.
이전 헬퍼의 지원 중단#
this.helpers.request(options)를 사용하는 이전 헬퍼 구현은 request-promise 라이브러리를 사용하고 노출했습니다. 이는 버전 1에서 제거되었습니다.
호환성 저하를 최소화하기 위해 n8n은 Axios라는 다른 라이브러리로의 투명한 변환을 수행했습니다.
문제가 있는 경우 커뮤니티 포럼 또는 GitHub에 신고해 주세요.
새 헬퍼로의 마이그레이션 가이드#
새 헬퍼는 훨씬 더 견고하고, 라이브러리에 종속되지 않으며, 사용하기 쉽습니다.
새 노드는 모두 새 헬퍼를 사용해야 합니다. 기존 커스텀 노드를 새 헬퍼로 마이그레이션하는 것을 적극 고려해야 합니다. 마이그레이션 시 주요 고려 사항은 다음과 같습니다.
url을 받습니다.uri는 받지 않습니다.encoding: null은 이제encoding: arrayBuffer여야 합니다.rejectUnauthorized: false는 이제skipSslCertificateValidation: true입니다.- 페이로드를 명확히 하기 위해
content-type헤더에 따라body를 사용하세요. resolveWithFullResponse는 이제returnFullResponse이며 유사하게 동작합니다.