WebSocket API에 대한 데이터 변환 설정 - Amazon API Gateway

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

WebSocket API에 대한 데이터 변환 설정

API Gateway에서 WebSocket API 메서드 요청은 백엔드의 요구에 따라 해당하는 통합 요청 페이로드에서 여러 유형의 페이로드를 취할 수 있습니다. 마찬가지로 백엔드에서는 프런트 엔드에서 기대하는 메서드 응답 페이로드가 아니라 통합 응답 페이로드를 반환할 수 있습니다.

API Gateway에서는 매핑 템플릿을 사용하여 방법 요청에서 해당 통합 요청으로, 통합 요청에서 해당 방법 요청으로 페이로드를 매핑할 수 있습니다. 템플릿 선택 표현식을 지정하여 필요한 데이터 변환을 수행하는 데 사용할 템플릿을 결정합니다.

데이터 매핑을 사용하면 라우팅 요청의 데이터를 백엔드 통합에 매핑할 수 있습니다. 자세한 내용은 WebSocket API에 대한 데이터 매핑 설정 단원을 참조하십시오.

매핑 템플릿 및 모델

매핑 템플릿이란 VTL(Velocity Template Language)로 표현된 스크립트로, JSONPath 표현식을 사용하여 페이로드에 적용됩니다. API Gateway 매핑 템플릿에 대한 자세한 내용은 매핑 템플릿 이해 단원을 참조하세요.

페이로드는 JSON 스키마 draft 4에 따라 데이터 모델을 가질 수 있습니다. 매핑 템플릿을 생성하기 위해 모델을 정의할 필요는 없습니다. 그러나 API Gateway에서는 제공된 모델에 따라 템플릿 블루프린트를 생성하기 때문에 모델이 있으면 템플릿을 생성하는 데 도움이 됩니다. API Gateway 모델에 대한 자세한 내용은 데이터 모델 이해 단원을 참조하세요.

템플릿 선택 표현식

매핑 템플릿을 사용하여 페이로드를 변환하려면 통합 요청 또는 통합 응답에서 WebSocket API 템플릿 선택 표현식을 지정합니다. 이 표현식은 요청 본문을 (입력 템플릿을 통해) 요청 본문으로 변환하거나 통합 응답 본문을 (출력 템플릿을 통해) 라우팅 응답 본문으로 변환하는 데 사용할 입력 또는 출력 템플릿(있는 경우)를 판별하기 위해 평가됩니다.

Integration.TemplateSelectionExpression${request.body.jsonPath}와 정적 값을 지원합니다.

IntegrationResponse.TemplateSelectionExpression${request.body.jsonPath}, ${integration.response.statuscode}, ${integration.response.header.headerName}, ${integration.response.multivalueheader.headerName} 및 정적 값을 지원합니다.

통합 응답 선택 표현식

WebSocket API에 대해 통합 응답을 설정할 때 선택적으로 통합 응답 선택 표현식을 지정할 수 있습니다. 이 표현식은 통합이 반환될 때 어떤 IntegrationResponse가 선택되어야 하는지 결정합니다. 이 표현식의 값은 현재 아래에 정의된 대로 API 게이트웨이에 의해 제한됩니다. 이 표현식은 비 프록시 통합에만 해당한다는 점에 유의하십시오. 프록시 통합은 모델링이나 수정 없이 단순히 응답 페이로드를 호출자에게 다시 전달하기만 합니다.

이전의 다른 선택 표현식과 달리 이 표현식은 현재 패턴 일치 형식을 지원합니다. 표현식은 슬래시로 래핑해야 합니다.

현재 이 값은 integrationType에 따라 고정됩니다.

  • Lambda 기반 통합의 경우 $integration.response.body.errorMessage입니다.

  • HTTPMOCK 통합의 경우 $integration.response.statuscode입니다.

  • HTTP_PROXYAWS_PROXY의 경우 페이로드가 호출자에게 패스스루 되도록 요청하기 때문에 표현식이 사용되지 않습니다.