node 빌더를 위한 HTTP 요청 헬퍼
n8n은 HTTP 요청을 위한 유연한 헬퍼를 제공하며, 복잡성의 대부분을 추상화합니다. 이 문서의 정보는 프로그래매틱 스타일을 사용하는 node 빌드에 해당됩니다. execute 함수 내에서 헬퍼를 호출합니다. url은 필수입니다.
n8n은 HTTP 요청을 위한 유연한 헬퍼를 제공하며, 복잡성의 대부분을 추상화합니다.
이 문서의 정보는 프로그래매틱 스타일을 사용하는 node 빌드에 해당됩니다. 선언형 스타일 node에는 적용되지 않습니다.
사용법#
execute 함수 내에서 헬퍼를 호출합니다.
// 인증이 필요하지 않은 경우
const response = await this.helpers.httpRequest(options);
// 인증이 필요한 경우
const response = await this.helpers.httpRequestWithAuthentication.call(
this,
'credentialTypeName', // 예: 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 auth에 사용됩니다.username과password를 제공합니다. n8n은 이를 생략하고 대신helpers.httpRequestWithAuthentication(...)을 사용하는 것을 권장합니다.disableFollowRedirect: 기본적으로 n8n은 리다이렉트를 따릅니다. 이를 true로 설정하여 이를 방지할 수 있습니다.skipSslCertificateValidation: 적절한 인증서 없이 HTTPS 서비스를 호출하는 데 사용됩니다.returnFullResponse: 바디만 반환하는 대신 다음 형식으로 더 많은 데이터가 포함된 오브젝트를 반환합니다:{body: body, headers: object, statusCode: 200, statusMessage: 'OK'}encoding: n8n이 콘텐츠 유형을 감지할 수 있지만, 읽고 상호작용할 수 있는 버퍼를 받으려면arrayBuffer를 지정할 수 있습니다.
예시#
예시는 Mattermost node를 참고하세요.
이전 헬퍼의 사용 중단#
this.helpers.request(options)를 사용하는 이전 헬퍼 구현은 request-promise 라이브러리를 사용하고 노출했습니다. 이는 버전 1에서 제거되었습니다.
비호환성을 최소화하기 위해 n8n은 Axios라는 다른 라이브러리로 투명하게 변환했습니다.
문제가 있으면 커뮤니티 포럼 또는 GitHub에 보고해 주세요.
새 헬퍼로 마이그레이션 가이드#
새 헬퍼는 훨씬 더 강력하고 라이브러리에 독립적이며 사용하기 쉽습니다.
새 node는 모두 새 헬퍼를 사용해야 합니다. 기존 커스텀 node를 새 헬퍼로 마이그레이션하는 것을 강력히 고려해야 합니다. 마이그레이션 시 주요 고려사항:
url을 허용합니다.uri는 허용하지 않습니다.encoding: null은 이제encoding: arrayBuffer여야 합니다.rejectUnauthorized: false는 이제skipSslCertificateValidation: true입니다.- 페이로드를 명확히 하기 위해
content-type헤더에 따라body를 사용합니다. resolveWithFullResponse는 이제returnFullResponse이며 유사한 동작을 합니다.
