

# API Gateway에서 WebSocket API 통합 응답 설정
<a name="apigateway-websocket-api-integration-responses"></a>

다음 섹션에서는 WebSocket API 통합 응답에 대한 간략한 개요와 WebSocket API 통합 응답을 설정하는 방법을 제공합니다.

**Topics**
+ [통합 응답 개요](#apigateway-websocket-api-integration-response-overview)
+ [양방향 커뮤니케이션을 위한 통합 응답](#apigateway-websocket-api-integration-response-for-two-way-communication)
+ [API Gateway 콘솔을 사용하여 통합 응답 설정](#apigateway-websocket-api-integration-response-using-console)
+ [AWS CLI를 사용하여 통합 응답 설정](#apigateway-websocket-api-integration-response-using-awscli)

## 통합 응답 개요
<a name="apigateway-websocket-api-integration-response-overview"></a>

API Gateway의 통합 응답은 백엔드 서비스의 응답을 모델링하고 조작하는 한 방법입니다. WebSocket API 통합 응답과 REST API 설정을 비교한 아래 설명을 보면 몇 가지 차이점이 있지만 개념상 동작은 같습니다.

WebSocket 라우팅은 양방향 또는 단방향 통신으로 구성할 수 있습니다.
+ 라우팅이 양방향 통신을 위해 구성되면 통합 응답을 통해 REST API에 대한 통합 응답과 마찬가지로 반환된 메시지 페이로드에 대한 변환을 구성할 수 있습니다.
+ 라우팅이 단방향 통신을 위해 구성된 경우, 통합 응답 구성에 관계없이 메시지가 처리된 후 WebSocket 채널을 통해 응답이 반환되지 않습니다.

 경로 응답을 설정하지 않으면 API Gateway가 경로 응답을 통해 백엔드 응답을 전달하지 않습니다. 경로 응답 설정에 대한 자세한 내용은 [API Gateway에서 WebSocket API에 대한 라우팅 응답 설정](apigateway-websocket-api-route-response.md) 섹션을 참조하세요.

## 양방향 커뮤니케이션을 위한 통합 응답
<a name="apigateway-websocket-api-integration-response-for-two-way-communication"></a>

통합은 *프록시* 통합과 *비 프록시* 통합으로 나눌 수 있습니다.

**중요**  
*프록시 통합*의 경우, API Gateway가 자동으로 백엔드 출력을 호출자에게 전체 페이로드로 전달합니다. 통합 응답이 없습니다.

*비 프록시 통합*의 경우 최소한 하나의 통합 응답을 설정해야 합니다.
+ 명시적 선택을 할 수 없을 때 통합 응답 중 하나가 catch-all 역할을 하는 것이 이상적입니다. 이 기본 경우는 통합 응답 키 `$default` 설정으로 표현됩니다.
+ 다른 모든 경우에는 통합 응답 키가 정규 표현식으로 사용됩니다. `"/expression/"` 형식을 따라야 합니다.

비 프록시 HTTP 통합의 경우:
+ API Gateway가 백엔드 응답의 HTTP 상태 코드와 일치시키려고 합니다. 이 경우 통합 응답 키가 정규식으로 사용됩니다. 일치 항목을 찾을 수 없으면 `$default`가 통합 응답으로 선택됩니다.
+ 템플릿 선택 표현식은 위에서 설명한 대로 작동합니다. 예:
  + `/2\d\d/`: 성공적인 응답 수신 및 변환
  + `/4\d\d/`: 잘못된 요청 오류 수신 및 변환
  + `$default`: 예기치 않은 모든 응답 수신 및 변환

템플릿 선택 표현식에 대한 자세한 내용은 [템플릿 선택 표현식](websocket-api-data-transformations.md#apigateway-websocket-api-template-selection-expressions) 섹션을 참조하세요.

## API Gateway 콘솔을 사용하여 통합 응답 설정
<a name="apigateway-websocket-api-integration-response-using-console"></a>

API Gateway 콘솔을 사용하여 WebSocket API에 대한 라우팅 통합 응답을 설정하려면 다음을 수행하세요.

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)에서 API Gateway 콘솔에 로그인합니다.

1.  WebSocket API를 선택하고 경로를 선택합니다.

1. **통합 요청** 탭을 선택한 다음 **통합 응답 설정** 섹션에서 **통합 응답 생성**을 선택합니다.

1. **응답 키**에 응답 선택 표현식을 평가한 후 보내는 메시지에 있는 응답 키에서 찾을 수 있는 값을 입력합니다. 예를 들어 잘못된 요청 오류를 수신하고 변환하려면 **/4\\d\\d/**를 입력하고 템플릿 선택 표현식과 일치하는 모든 응답을 수신하고 변환하려면 **$default**를 입력할 수 있습니다.

1. **템플릿 선택 표현식**에 보내는 메시지를 평가하기 위한 선택 표현식을 입력합니다.

1. **응답 생성**을 선택합니다.

1. 매핑 템플릿을 정의하여 반환된 메시지 페이로드의 변환을 구성할 수도 있습니다. **템플릿 생성**을 선택합니다.

1. 키 이름을 입력합니다. 기본 템플릿 선택 표현식을 선택하는 경우 **\\$default**를 입력합니다.

1. **응답 템플릿**에서 코드 편집기에 매핑 템플릿을 입력합니다.

1. **템플릿 생성**을 선택합니다.

1. **API 배포**를 선택하여 API를 배포합니다.

 API에 연결하려면 다음 [ wscat](https://www.npmjs.com/package/wscat) 명령을 사용합니다. 에 대한 자세한 내용은 `wscat` 단원을 참조하세요.[`wscat`를 사용하여 WebSocket API에 연결하고 메시지 보내기](apigateway-how-to-call-websocket-api-wscat.md).

```
wscat -c wss://{{api-id}}.execute-api.{{us-east-2}}.amazonaws.com/{{test}}
```

 경로를 호출하면 반환된 메시지 페이로드가 반환됩니다.

## AWS CLI를 사용하여 통합 응답 설정
<a name="apigateway-websocket-api-integration-response-using-awscli"></a>

다음 [create-integration-response](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/create-integration-response.html) 명령은 `$default` 통합 응답을 생성합니다.

```
aws apigatewayv2 create-integration-response \
    --api-id vaz7da96z6 \
    --integration-id a1b2c3 \
    --integration-response-key '$default'
```