API Gateway에서 WebSocket API의 데이터 변환
API Gateway에서 WebSocket API 메서드 요청은 백엔드의 요구에 따라 해당하는 통합 요청 페이로드에서 여러 유형의 페이로드를 취할 수 있습니다. 마찬가지로 백엔드에서는 프런트 엔드에서 기대하는 메서드 응답 페이로드가 아니라 통합 응답 페이로드를 반환할 수 있습니다.
API Gateway에서는 매핑 템플릿을 사용하여 방법 요청에서 해당 통합 요청으로, 통합 요청에서 해당 방법 요청으로 페이로드를 매핑할 수 있습니다. 템플릿 선택 표현식을 지정하여 필요한 데이터 변환을 수행하는 데 사용할 템플릿을 결정합니다.
데이터 매핑을 사용하면 라우팅 요청의 데이터를 백엔드 통합에 매핑할 수 있습니다. 자세한 내용은 API Gateway에서 WebSocket API에 대한 데이터 매핑 설정 단원을 참조하십시오.
매핑 템플릿 및 모델
매핑 템플릿이란 VTL(Velocity Template Language)
페이로드는 JSON 스키마 draft 4
템플릿 선택 표현식
매핑 템플릿을 사용하여 페이로드를 변환하려면 통합 요청 또는 통합 응답에서 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에 대해 통합 응답을 설정할 때 선택적으로 통합 응답 선택 표현식을 지정할 수 있습니다. 이 표현식은 통합이 반환될 때 어떤
가 선택되어야 하는지 결정합니다. 이 표현식의 값은 현재 아래에 정의된 대로 API 게이트웨이에 의해 제한됩니다. 이 표현식은 비 프록시 통합에만 해당한다는 점에 유의하십시오. 프록시 통합은 모델링이나 수정 없이 단순히 응답 페이로드를 호출자에게 다시 전달하기만 합니다.IntegrationResponse
이전의 다른 선택 표현식과 달리 이 표현식은 현재 패턴 일치 형식을 지원합니다. 표현식은 슬래시로 래핑해야 합니다.
현재 이 값은
에 따라 고정됩니다.integrationType
-
Lambda 기반 통합의 경우
$integration.response.body.errorMessage
입니다. -
HTTP
및MOCK
통합의 경우$integration.response.statuscode
입니다. -
HTTP_PROXY
및AWS_PROXY
의 경우 페이로드가 호출자에게 패스스루 되도록 요청하기 때문에 표현식이 사용되지 않습니다.