HTTP 커넥터 작업에서 JSON 페이로드를 문자열로 처리
이 튜토리얼에서는 Application Integration에서 HTTP 커넥터 작업을 사용할 때 JSON 페이로드를 처리하는 방법을 알아봅니다.
페이로드를 잘못 처리하면 API에서 이를 잘못 해석하여 400 Bad Request 오류가 발생할 수 있습니다. API가 JSON 페이로드를 올바르게 수신하고 파싱하도록 하려면 JSON 페이로드를 문자열로 처리하고 Content-Type 헤더를 application/json로 명시적으로 설정하세요.
시작하기 전에
- Application Integration에 액세스할 수 있는지 확인합니다.
-
Google Cloud 프로젝트를 선택하고 다음 작업을 완료합니다.
- 연결을 만드는 데 사용할 서비스 계정에 다음 역할을 부여합니다.
roles/secretmanager.viewerroles/secretmanager.secretAccessor
- 다음 서비스를 사용 설정합니다.
secretmanager.googleapis.com(Secret Manager API)connectors.googleapis.com(Connectors API)
프로젝트에 대해 이러한 서비스를 사용 설정하지 않은 경우 연결을 만들 때 연결 만들기 페이지에서 서비스를 사용 설정하라는 메시지가 표시됩니다.
- 연결을 만드는 데 사용할 서비스 계정에 다음 역할을 부여합니다.
- HTTP 커넥터 태스크를 추가하고 구성합니다.
- 데이터 변환기 태스크를 추가하고 구성하여 JSON 페이로드와 헤더를 준비합니다.
JSON 페이로드를 문자열로 처리
HTTP 커넥터 작업을 사용할 때 특수 문자가 포함된 JSON 페이로드를 처리하려면 다음 단계를 완료하세요.
JSON 페이로드의 문자열 변수 만들기
- Google Cloud 콘솔에서 Application Integration 페이지로 이동합니다.
- 탐색 메뉴에서 통합을 클릭합니다.
- 기존 통합을 선택하거나 새 통합을 만듭니다. 통합에 구성된 HTTP 커넥터 및 데이터 변환기 태스크가 포함되어 있는지 확인합니다(시작하기 전에 섹션에 자세히 설명되어 있음).
- 통합 편집기에서 만들기를 클릭하여 변수 만들기 대화상자를 엽니다.
- 변수 만들기 대화상자에서 다음을 수행합니다.
- 다음 정보를 입력합니다.
- 이름: 이름을 입력합니다(예:
jsonPayloadString). - 데이터 유형: 문자열을 선택합니다.
- 기본값:
- JSON 페이로드가 통합 흐름의 이전 작업(예: 다른 데이터 변환기 작업)에 의해 채워진 경우 이 필드를 비워 둡니다. 변수는 통합의 이전 태스크의 출력을 기반으로 동적으로 채워집니다.
- 이전 작업에서 JSON 페이로드를 채우지 않은 경우 정적 기본 JSON 페이로드를 제공해야 합니다. 이 필드에 JSON 구조를 단일 문자열로 입력합니다.
다음은 기본값 필드에 JSON 문자열을 입력하는 방법의 두 가지 예입니다.
특수문자 없음: JSON
{"name": "Developer", "key": "test"}를 나타내려면{ "name": "Developer", "key": "test" }을 정확하게 입력합니다.특수문자 사용: JSON에 줄바꿈 (
\n)과 같은 특수문자가 포함된 경우 이스케이프 처리해야 합니다. 예를 들어 JSON{"key": "value1\nvalue2"}를 나타내려면 필드에{"key": "value1\\nvalue2"}를 입력합니다.
- 이름: 이름을 입력합니다(예:
- 만들기를 클릭합니다.
변수 만들기 및 사용에 대한 자세한 내용은 변수를 참고하세요.
- 다음 정보를 입력합니다.
문자열 변수를 커넥터 입력 본문에 매핑
데이터 변환기 편집기에서 jsonPayloadString 변수를 connectorInputPayload.Body 필드에 매핑합니다.
- 통합에서 데이터 변환기 태스크를 추가합니다.
- 데이터 변환기 편집기를 엽니다. 다이어그램 모드 또는 스크립트 모드를 사용할 수 있습니다.
- 변수를 매핑하려면 다음 단계를 따르세요.
- 다이어그램 모드:
jsonPayloadString를 입력으로 추가하고 connectorInputPayload.Body 출력 필드에 매핑합니다. - 스크립트 모드: Jsonnet 코드를 작성하여 값
connectorInputPayload.Body = vars.jsonPayloadString;를 할당합니다.
- 다이어그램 모드:
맞춤 Content-Type 헤더 추가
- 데이터 변환기 편집기에서 커스텀 헤더를 connectorInputPayload.Headers 필드에 매핑을 추가합니다.
- 다이어그램 모드: 값
{"Content-Type": "application/json"}로 상수 입력을 추가하고 connectorInputPayload.Headers에 매핑합니다. - 스크립트 모드: 다음 Jsonnet을 추가하여 헤더를 설정합니다.
connectorInputPayload.Headers = { "Content-Type": "application/json" };
- 다이어그램 모드: 값
HTTP 커넥터 태스크 실행
통합을 실행하기 전에 connectorInputPayload.Body이 jsonPayloadString 변수로 채워져 있고 connectorInputPayload.Headers에 Content-Type: application/json 헤더가 포함되어 있는지 확인합니다. 이 설정을 사용하면 HTTP 커넥터 작업에서 데이터 변환기 작업에 올바른 Content-Type이 포함된 문자열로 JSON 페이로드를 전송합니다.
통합을 실행하여 API 요청을 테스트합니다. API가 400 Bad Request 오류를 반환하면 데이터 변환기 작업에서 connectorInputPayload.Body 및 connectorInputPayload.Headers의 매핑을 다시 확인합니다.
다음 단계
다른 커넥터로 통합 빌드를 시도합니다. 지원되는 모든 커넥터 목록은 커넥터 참조를 확인하세요.