InfoGrab DocsInfoGrab Docs

노드 빌더를 위한 HTTP request 헬퍼

요약

n8n은 대부분의 복잡성을 추상화하여 HTTP 요청을 만들 수 있는 유연한 헬퍼를 제공합니다. 이 문서의 정보는 프로그래매틱 스타일을 사용하는 노드 빌드에만 해당합니다. execute 함수 내부에서 헬퍼를 호출합니다. url은 필수입니다.

n8n은 대부분의 복잡성을 추상화하여 HTTP 요청을 만들 수 있는 유연한 헬퍼를 제공합니다.

Note

프로그래매틱 스타일 전용

이 문서의 정보는 프로그래매틱 스타일을 사용하는 노드 빌드에만 해당합니다. 선언적 스타일 노드에는 적용되지 않습니다.

사용법#

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: 키-값 쌍입니다.
    • bodyFormData의 인스턴스인 경우 n8n이 자동으로 content-type: multipart/form-data를 추가합니다.
    • bodyURLSearchParams의 인스턴스인 경우 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) 인증에 사용됩니다. usernamepassword를 제공하세요. 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이며 유사하게 동작합니다.

노드 빌더를 위한 HTTP request 헬퍼

n8n v2.29
원문 보기
요약

n8n은 대부분의 복잡성을 추상화하여 HTTP 요청을 만들 수 있는 유연한 헬퍼를 제공합니다. 이 문서의 정보는 프로그래매틱 스타일을 사용하는 노드 빌드에만 해당합니다. execute 함수 내부에서 헬퍼를 호출합니다. url은 필수입니다.

n8n은 대부분의 복잡성을 추상화하여 HTTP 요청을 만들 수 있는 유연한 헬퍼를 제공합니다.

Note

프로그래매틱 스타일 전용

이 문서의 정보는 프로그래매틱 스타일을 사용하는 노드 빌드에만 해당합니다. 선언적 스타일 노드에는 적용되지 않습니다.

사용법#

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: 키-값 쌍입니다.
    • bodyFormData의 인스턴스인 경우 n8n이 자동으로 content-type: multipart/form-data를 추가합니다.
    • bodyURLSearchParams의 인스턴스인 경우 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) 인증에 사용됩니다. usernamepassword를 제공하세요. 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이며 유사하게 동작합니다.