

# API Gateway 콘솔을 사용하여 메서드 설정
<a name="how-to-set-up-method-using-console"></a>

REST API 콘솔을 사용하여 메서드를 생성하는 경우 통합 요청과 메서드 요청을 모두 구성합니다. 기본적으로 API Gateway는 사용자 메서드의 `200` 메서드 응답을 생성합니다.

다음 지침은 메서드 요청 설정을 편집하는 방법과 메서드에 대한 추가 메서드 응답을 생성하는 방법을 보여줍니다.

**Topics**
+ [API Gateway 콘솔에서 API Gateway 메서드 요청 편집](#how-to-method-settings-callers-console)
+ [API Gateway 콘솔에서 API Gateway 메서드 응답 설정](#how-to-method-response-settings-console)

## API Gateway 콘솔에서 API Gateway 메서드 요청 편집
<a name="how-to-method-settings-callers-console"></a>

 이러한 지침에서는 메서드 요청을 이미 생성한 것으로 가정합니다. 매소드를 생성하는 방법에 대한 자세한 내용은 [API Gateway 콘솔을 사용하여 API 통합 요청 설정](how-to-method-settings-console.md) 단원을 참조하세요.

1. **리소스** 창에서 메소드를 선택한 후 **메서드 요청** 탭을 선택합니다.

1. **메서드 요청 설정** 섹션에서 **편집**을 선택합니다.

1. **권한 부여**에서 사용 가능한 권한 부여자를 선택합니다.

   1. 모든 사용자에게 메서드에 대한 오픈 액세스를 활성화하려면 **없음**을 선택합니다. 기본값 설정이 변경되지 않은 경우 이 단계는 건너뛸 수 있습니다.

   1. IAM 권한을 사용하여 메서드에 대한 클라이언트 액세스 권한을 제어하려면 `AWS_IAM`을 선택합니다. 이 선택을 통해 올바른 IAM 정책이 연결된 IAM 역할의 사용자만 이 메서드를 호출할 수 있습니다.

      IAM 역할을 생성하려면 다음과 같은 형식의 액세스 정책을 지정합니다.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "execute-api:Invoke"
            ],
            "Resource": [
              "arn:aws:execute-api:us-east-1:111111111111:aaabbb/*/GET/"
            ]
          }
        ]
      }
      ```

------

      이 액세스 정책에서 `arn:aws:execute-api:us-east-1:111111111111:aaabbb/*/GET/`는 메서드의 ARN입니다. **리소스** 페이지에서 방법을 선택하면 메서드의 ARN을 찾을 수 있습니다. IAM 권한 설정에 대한 자세한 내용은 [IAM 권한을 사용하여 REST API에 대한 액세스 제어](permissions.md)를 참조하세요.

      IAM 역할을 만들려면 다음 자습서 [Lambda 비 프록시 통합을 위한 Lambda 함수 만들기](getting-started-lambda-non-proxy-integration.md#getting-started-new-lambda)의 지침을 적용하면 됩니다.

   1.  Lambda 권한 부여자를 사용하려면 토큰 또는 요청 권한 부여자를 선택합니다. 이 선택이 드롭다운 메뉴에 표시되도록 하기 위해서는 Lambda 권한 부여자를 생성합니다. Lambda 권한 부여자를 생성하는 방법에 대한 자세한 내용은 [API Gateway Lambda 권한 부여자 사용](apigateway-use-lambda-authorizer.md) 단원을 참조하세요.

   1.  Amazon Cognito 사용자 풀을 사용하려면 **Cognito 사용자 풀 권한 부여자**에서 사용할 수 있는 사용자 풀을 선택합니다. 이 선택이 드롭다운 메뉴에 표시되도록 하기 위해서는 Amazon Cognito에 사용자 풀을 생성하고 API Gateway에 Amazon Cognito 사용자 풀 권한 부여자를 생성합니다. Amazon Cognito 사용자 풀 권한 부여자를 생성하는 방법에 대한 자세한 내용은 [Amazon Cognito 사용자 풀을 권한 부여자로 사용하여 REST API에 대한 액세스 제어](apigateway-integrate-with-cognito.md) 단원을 참조하세요.

1.  요청 검증을 지정하려면 **요청 검사기** 드롭다운 메뉴에서 값을 선택합니다. 요청 검증을 비활성화하려면 **없음**을 선택합니다. 각 옵션에 대한 자세한 내용은 [API Gateway의 REST API API 검증 요청](api-gateway-method-request-validation.md)를 참조하세요.

1. API 키를 요구하려면 **API 키가 필요함**을 선택합니다. API는 활성화되면 [사용량 계획](api-gateway-api-usage-plans.md)에서 클라이언트 트래픽을 조절하는 데 사용됩니다.

1. (선택 사항) API Gateway에서 생성된 이 API의 Java SDK에서 작업 이름을 할당하려면 **작업 이름**에 이름을 입력합니다. 예를 들어 `GET /pets/{petId}`의 메서드 요청에 대해 이에 상응하는 Java SDK 작업 이름은 기본적으로 `GetPetsPetId`입니다. 이 이름은 메서드의 HTTP 동사(`GET`)와 리소스 경로 변수 이름(`Pets` 및 `PetId`)으로부터 구성됩니다. 작업 이름을 `getPetById`로 설정하면 SDK 작업 이름은 `GetPetById`가 됩니다.

1. 메서드에 쿼리 문자열 파라미터를 추가하려면 다음을 수행합니다.

   1. **URL 쿼리 문자열 파라미터**를 선택한 다음, **쿼리 문자열 추가**를 선택합니다.

   1. **이름**에 쿼리 문자열 파라미터의 이름을 입력합니다.

   1. 새로 생성된 쿼리 문자열 파라미터가 요청 검증에 사용되는 경우 **필수**를 선택합니다. 요청 검증에 대한 자세한 내용은 [API Gateway의 REST API API 검증 요청](api-gateway-method-request-validation.md)를 참조하세요.

   1. 새로 생성된 쿼리 문자열 파라미터가 캐싱 키의 일부로 사용되는 경우 **캐싱**을 선택합니다. 캐싱에 대한 자세한 정보는 [메서드/통합 파라미터를 캐시 키로 사용하여 캐시된 응답 인덱싱](api-gateway-caching.md#enable-api-gateway-cache-keys)을 참조하세요.

   쿼리 문자열 파라미터를 제거하려면 **제거**를 선택합니다.

1. 메서드에 헤더 파라미터를 추가하려면 다음을 수행합니다.

   1. **HTTP 요청 헤더**를 선택한 다음, **헤더 추가**를 선택합니다.

   1. **이름**에 헤더 이름을 입력합니다.

   1. 새로 생성된 헤더가 요청 검증에 사용되는 경우 **필수**를 선택합니다. 요청 검증에 대한 자세한 내용은 [API Gateway의 REST API API 검증 요청](api-gateway-method-request-validation.md)를 참조하세요.

   1. 새로 생성된 헤더가 캐싱 키의 일부로 사용되는 경우 **캐싱**을 선택합니다. 캐싱에 대한 자세한 정보는 [메서드/통합 파라미터를 캐시 키로 사용하여 캐시된 응답 인덱싱](api-gateway-caching.md#enable-api-gateway-cache-keys)을 참조하세요.

   헤더를 제거하려면 **제거**를 선택합니다.

1.  `POST`, `PUT` 또는 `PATCH` HTTP 동사로 메서드 요청의 페이로드 형식을 선언하려면 **요청 본문**을 선택하고 다음과 같이 합니다.

   1. **모델 추가**를 선택합니다.

   1. **콘텐츠 유형**에 MIME 유형(예: `application/json`)을 입력합니다.

   1. **모델**의 경우 드롭다운 메뉴에서 모델을 선택합니다. API에 대해 현재 사용할 수 있는 모델에는 기본 `Empty` 및 `Error` 모델뿐 아니라 이미 생성해 API의 [모델](https://docs.aws.amazon.com/apigateway/latest/api/API_Model.html) 모음에 추가한 모든 모델도 포함됩니다. 모델 생성에 대한 자세한 내용은 [REST API에 대한 데이터 모델](models-mappings-models.md)을 참조하세요.
**참고**  
 모델은 클라이언트에게 페이로드의 예상 데이터 형식을 알려주는 데 유용합니다. 스켈레톤 매핑 템플릿을 생성하는 것이 도움이 됩니다. Java, C\$1, Objective-C, Swift 등의 언어에서 API의 강력한 형식 SDK를 생성하는 것이 중요합니다. 이는 페이로드에 대해 요청 검증이 활성화된 경우에만 필요합니다.

1. **저장**을 선택합니다.

## API Gateway 콘솔에서 API Gateway 메서드 응답 설정
<a name="how-to-method-response-settings-console"></a>

 API 메서드는 응답이 하나 이상일 수 있습니다. 각 응답은 HTTP 상태 코드로 인덱싱됩니다. 기본적으로 API Gateway 콘솔은 `200` 응답을 메서드 응답에 추가합니다. 예를 들어 메서드가 `201`을 대신 반환하도록 응답을 수정할 수 있습니다. 또한 다른 응답을 추가할 수도 있는데, 예를 들면 액세스 거부의 경우 `409`를, 초기화되지 않은 단계 변수가 사용된 경우 `500`을 추가할 수 있습니다.

 API Gateway 콘솔을 사용하여 API 메서드에 대한 응답을 수정, 삭제 또는 추가하려면 다음 지침을 따르세요.

1. **리소스** 창에서 메서드를 선택한 상태로 **메서드 응답** 탭을 선택합니다. 탭을 표시하려면 오른쪽 화살표 버튼을 선택해야 할 수도 있습니다.

1. **메서드 응답 설정** 섹션에서 **응답 생성**을 선택합니다.

1. **HTTP 상태 코드**에 HTTP 상태 코드(예: `200`, `400`, `500`)를 입력합니다.

    백엔드 반환 응답에 그에 상응하는 메서드 응답이 정의되어 있지 않으면 API Gateway는 클라이언트에게 응답을 반환하는 데 실패합니다. 그 대신에 `500 Internal server error` 오류 응답을 반환합니다.

1. **헤더 추가(Add header)**를 선택합니다.

1.  **헤더 이름**에 이름을 입력합니다.

    백엔드에서 클라이언트로 헤더를 반환하려면 메서드 응답에 헤더를 추가합니다.

1.  메서드 응답 본문의 형식을 정의하려면 **모델 추가**를 선택합니다.

   **콘텐츠 유형**에 응답 페이로드의 미디어 유형을 입력하고 **모델** 드롭다운 메뉴에서 모델을 선택합니다.

1. **저장**을 선택합니다.

기존 응답을 수정하려면 메서드 응답으로 이동한 다음 **편집**을 선택합니다. **HTTP 상태 코드**를 변경하려면 **삭제**를 선택하고 새 메서드 응답을 생성합니다.

백엔드에서 반환되는 응답마다 메서드 응답으로 구성된 호환 가능한 응답이 있어야 합니다. 그러나 클라이언트에게 반환되기 전에 백엔드로부터 오는 결과를 메서드 응답에 매핑하지 않으면 메서드 응답 헤더 및 페이로드 모델을 구성하는 것은 선택 사항입니다. 또한 메서드 응답 페이로드 모델은 강력한 형식의 API용 SDK를 생성하는 경우에 중요합니다.