InfoGrab Docs

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: 키-값 쌍.
    • 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 auth에 사용됩니다. usernamepassword를 제공합니다. 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이며 유사한 동작을 합니다.

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: 키-값 쌍.
    • 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 auth에 사용됩니다. usernamepassword를 제공합니다. 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이며 유사한 동작을 합니다.