HTTP API에서 API Gateway 통합을 위한 응답 상태 코드를 어떻게 매핑해야 하나요?

2분 분량
0

페이로드 버전 1.0과 2.0의 차이점은 무엇이나요? Amazon API Gateway에서 HTTP API가 반환한 상태 코드를 어떻게 매핑해야 하나요?-또는- HTTP API에서 상태 코드를 어떻게 매핑해야 하나요?

해결 방법

백엔드인 응답 상태 코드를 재정의하려면 API Gateway 매핑 템플릿 또는 정규 표현식을 사용하여 상태 코드를 매핑하십시오. 이 작업은 HTTP API와의 프록시 및 비프록시 통합에서 수행할 수 있습니다.

HTTP API로 작업

HTTP API를 REST API와 비교한다면 설계가 다릅니다. HTTP API는 기본 프록시에 의해 통합되며 같은 응답을 반환합니다. REST API와 달리 HTTP API는 Lambda 통합에 사용할 수 있는 두 가지 페이로드 형식 버전을 제공합니다. 1.0 및 2.0 페이로드 형식 버전의 경우, 연합 Lambda 함수 응답 형식이 있습니다.

페이로드 형식 버전 2.0을 사용할 때 Lambda 함수가 유효한 JSON 응답으로 상태 코드를 명시적으로 전달하지 않으면 API Gateway는 다음을 가정합니다.

  • IsBase64Encodedfalse입니다.
  • statusCode200입니다.
  • content-typeapplication/json입니다.
  • body은 Lambda 함수의 응답입니다.

이전 예제에서 HTTP API는 그 어떤 오류도 반환하지 않지만, 가정된 상태 코드 200을 전달합니다.

페이로드 형식 버전 1.0을 사용하면, Lambda 통합은 다음 형식으로 응답을 반환해야 합니다. API 게이트웨이는 응답을 가정하지 않고 500 오류를 반환합니다.

{
    "isBase64Encoded": true|false,
    "statusCode": httpStatusCode,
    "headers": { "headername": "headervalue", ... },
    "multiValueHeaders": { "headername": ["headervalue", "headervalue2", ...], ... },
    "body": "..."
}

상태 코드 매핑

반환된 백엔드인 응답 키를 기반으로 상태 코드를 정적 값에 매핑하려면 다음을 수행합니다.

  1. HTTP API에 구성된 통합으로 이동합니다.
  2. 수정할 통합 경로를 선택합니다. 통합 관리를 선택합니다. 파라미터 매핑으로 스크롤한 다음 파라미터 매핑 생성을 선택합니다.
  3. 매핑 유형을 **응답(상태 코드에 기반함)**으로 설정합니다. 이 상태 코드와 일치하는 통합 응답에는 파라미터 매핑이 적용되어야 하므로 응답 상태 코드도 설정하십시오.
  4. 새 매핑 추가를 선택합니다.
  5. 수정할 파라미터에서 statusCode를 선택합니다. 수정 유형덮어쓰기로 설정합니다.
  6. 정적 값으로 설정합니다.
    참고: 이 값은 클라이언트에 전송되어야 합니다.
  7. 생성을 선택합니다.

관련 정보

모델 및 매핑 템플릿으로 작업

API 요청 및 응답