HTTP 커넥터 작업에서 JSON 페이로드를 문자열로 처리

이 튜토리얼에서는 Application Integration에서 HTTP 커넥터 작업을 사용할 때 JSON 페이로드를 처리하는 방법을 알아봅니다.

페이로드를 잘못 처리하면 API에서 이를 잘못 해석하여 400 Bad Request 오류가 발생할 수 있습니다. API가 JSON 페이로드를 올바르게 수신하고 파싱하도록 하려면 JSON 페이로드를 문자열로 처리하고 Content-Type 헤더를 application/json로 명시적으로 설정하세요.

시작하기 전에

  • Application Integration에 액세스할 수 있는지 확인합니다.
  • Google Cloud 프로젝트를 선택하고 다음 작업을 완료합니다.

    • 연결을 만드는 데 사용할 서비스 계정에 다음 역할을 부여합니다.
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
    • 다음 서비스를 사용 설정합니다.
      • secretmanager.googleapis.com(Secret Manager API)
      • connectors.googleapis.com(Connectors API)

      프로젝트에 대해 이러한 서비스를 사용 설정하지 않은 경우 연결을 만들 때 연결 만들기 페이지에서 서비스를 사용 설정하라는 메시지가 표시됩니다.

  • HTTP 커넥터 태스크를 추가하고 구성합니다.
  • 데이터 변환기 태스크를 추가하고 구성하여 JSON 페이로드와 헤더를 준비합니다.

JSON 페이로드를 문자열로 처리

HTTP 커넥터 작업을 사용할 때 특수 문자가 포함된 JSON 페이로드를 처리하려면 다음 단계를 완료하세요.

JSON 페이로드의 문자열 변수 만들기

  1. Google Cloud 콘솔에서 Application Integration 페이지로 이동합니다.

    Application Integration으로 이동

  2. 탐색 메뉴에서 통합을 클릭합니다.
  3. 기존 통합을 선택하거나 새 통합을 만듭니다. 통합에 구성된 HTTP 커넥터데이터 변환기 태스크가 포함되어 있는지 확인합니다(시작하기 전에 섹션에 자세히 설명되어 있음).
  4. 통합 편집기에서 만들기를 클릭하여 변수 만들기 대화상자를 엽니다.
  5. 변수 만들기 대화상자에서 다음을 수행합니다.
    1. 다음 정보를 입력합니다.
      1. 이름: 이름을 입력합니다(예: jsonPayloadString).
      2. 데이터 유형: 문자열을 선택합니다.
      3. 기본값:
        • JSON 페이로드가 통합 흐름의 이전 작업(예: 다른 데이터 변환기 작업)에 의해 채워진 경우 이 필드를 비워 둡니다. 변수는 통합의 이전 태스크의 출력을 기반으로 동적으로 채워집니다.
        • 이전 작업에서 JSON 페이로드를 채우지 않은 경우 정적 기본 JSON 페이로드를 제공해야 합니다. 이 필드에 JSON 구조를 단일 문자열로 입력합니다.

          다음은 기본값 필드에 JSON 문자열을 입력하는 방법의 두 가지 예입니다.

          특수문자 없음: JSON {"name": "Developer", "key": "test"}를 나타내려면 { "name": "Developer", "key": "test" }을 정확하게 입력합니다.

          특수문자 사용: JSON에 줄바꿈 (\n)과 같은 특수문자가 포함된 경우 이스케이프 처리해야 합니다. 예를 들어 JSON {"key": "value1\nvalue2"}를 나타내려면 필드에 {"key": "value1\\nvalue2"}를 입력합니다.

    2. 만들기를 클릭합니다.
    JSON 페이로드의 문자열 변수 만들기
  6. 변수 만들기 및 사용에 대한 자세한 내용은 변수를 참고하세요.

문자열 변수를 커넥터 입력 본문에 매핑

데이터 변환기 편집기에서 jsonPayloadString 변수를 connectorInputPayload.Body 필드에 매핑합니다.

  1. 통합에서 데이터 변환기 태스크를 추가합니다.
  2. 데이터 변환기 편집기를 엽니다. 다이어그램 모드 또는 스크립트 모드를 사용할 수 있습니다.
  3. 변수를 매핑하려면 다음 단계를 따르세요.
    • 다이어그램 모드: jsonPayloadString를 입력으로 추가하고 connectorInputPayload.Body 출력 필드에 매핑합니다.
    • 스크립트 모드: Jsonnet 코드를 작성하여 값 connectorInputPayload.Body = vars.jsonPayloadString;를 할당합니다.

맞춤 Content-Type 헤더 추가

  1. 데이터 변환기 편집기에서 커스텀 헤더를 connectorInputPayload.Headers 필드에 매핑을 추가합니다.
    • 다이어그램 모드:{"Content-Type": "application/json"}로 상수 입력을 추가하고 connectorInputPayload.Headers에 매핑합니다.
    • 스크립트 모드: 다음 Jsonnet을 추가하여 헤더를 설정합니다.
      connectorInputPayload.Headers = {
        "Content-Type": "application/json"
      };
              

HTTP 커넥터 태스크 실행

통합을 실행하기 전에 connectorInputPayload.BodyjsonPayloadString 변수로 채워져 있고 connectorInputPayload.HeadersContent-Type: application/json 헤더가 포함되어 있는지 확인합니다. 이 설정을 사용하면 HTTP 커넥터 작업에서 데이터 변환기 작업에 올바른 Content-Type이 포함된 문자열로 JSON 페이로드를 전송합니다.

통합을 실행하여 API 요청을 테스트합니다. API가 400 Bad Request 오류를 반환하면 데이터 변환기 작업에서 connectorInputPayload.BodyconnectorInputPayload.Headers의 매핑을 다시 확인합니다.

다음 단계

다른 커넥터로 통합 빌드를 시도합니다. 지원되는 모든 커넥터 목록은 커넥터 참조를 확인하세요.