

# API Gateway에서 REST API 간접 호출
<a name="how-to-call-api"></a>

배포된 API를 호출하기 위해 클라이언트는 API 실행을 위한 API Gateway 구성 요소 서비스(예: `execute-api`)에 대한 URL 요청을 제출합니다.

기본 REST API URL의 형식은 다음과 같습니다.

```
https://{{api-id}}.execute-api.{{region}}.amazonaws.com/{{stage}}/
```

여기서 {{api-id}}는 API 식별자이고, {{region}}은 AWS 리전이고, {{stage}}는 API 배포의 스테이지 이름입니다.

**중요**  
API를 호출하기 전에 API Gateway에서 배포해야 합니다. API 배포에 대한 지침은 [API Gateway에서 REST API 배포](how-to-deploy-api.md)을 참조합니다.

**Topics**
+ [API의 간접 호출 URL 얻기](#apigateway-how-to-call-rest-api)
+ [API 간접 호출](#apigateway-call-api)
+ [API Gateway 콘솔을 사용하여 REST API 메서드 테스트](how-to-test-method.md)
+ [API Gateway에서 생성한 REST API용 Java SDK 사용](how-to-call-apigateway-generated-java-sdk.md)
+ [API Gateway에서 생성한 REST API용 Android SDK 사용](how-to-generate-sdk-android.md)
+ [API Gateway에서 생성한 REST API용 JavaScript SDK 사용](how-to-generate-sdk-javascript.md)
+ [API Gateway에서 생성한 REST API용 Ruby SDK 사용](how-to-call-sdk-ruby.md)
+ [Objective-C 또는 Swift에서 API Gateway에 의해 생성되는 REST API용 iOS SDK 사용](how-to-generate-sdk-ios.md)

## API의 간접 호출 URL 얻기
<a name="apigateway-how-to-call-rest-api"></a>

콘솔, AWS CLI 또는 내보낸 OpenAPI 정의를 사용하여 API의 간접 호출 URL을 가져올 수 있습니다.

### 콘솔을 사용하여 API의 간접 호출 URL 얻기
<a name="apigateway-obtain-url-console"></a>

다음 절차에서는 REST API 콘솔에서 API의 간접 호출 URL을 얻는 방법을 보여 줍니다.

**REST API 콘솔을 사용하여 API의 간접 호출 URL을 얻으려는 경우**

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

1. 배포된 API를 선택합니다.

1. 기본 탐색 창에서 **스테이지**를 선택합니다.

1. **스테이지 세부 정보**에서 복사 아이콘을 선택하여 API의 호출 URL을 복사합니다.

   이 URL은 API의 루트 리소스용입니다.  
![REST API를 생성하면 콘솔에 API의 호출 URL이 표시됩니다.](http://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/images/getting-started-rest-invoke-url.png)

1. API의 다른 리소스에 대한 API의 간접 호출 URL을 얻으려면 보조 탐색 창 아래에서 단계를 확장한 다음 메서드를 선택합니다.

1. 복사 아이콘을 선택해 API의 리소스 수준 간접 호출 URL을 복사합니다.  
![REST API의 리소스 수준 URL은 스테이지의 보조 탐색 창 아래에 있습니다.](http://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/images/resource-level-invoke-url.png)

#### AWS CLI를 사용하여 API의 간접 호출 URL 얻기
<a name="apigateway-obtain-url-cli"></a>

다음 절차에서는 AWS CLI를 사용하여 API의 간접 호출 URL을 얻는 방법을 보여 줍니다.

**AWS CLI를 사용하여 콘솔에서 API의 간접 호출 URL 얻으려는 경우**

1. `rest-api-id`를 편집하려면 다음 명령을 입력합니다. 이 명령은 해당 지역의 모든 `rest-api-id` 값을 반환합니다. 자세한 내용은 [get-rest-apis](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-rest-apis.html)을 참조하세요

   ```
   aws apigateway get-rest-apis
   ```

1. 예제 `rest-api-id`를 `rest-api-id`로 바꾸고, 예제 {{{stage-name}}}을 {{{stage-name}}}로 바꾸고, {{{region}}}을 해당 리전으로 바꿉니다.

   ```
   https://{{{restapi_id}}}.execute-api.{{{region}}}.amazonaws.com/{{{stage_name}}}/
   ```

##### 내보낸 API의 OpenAPI 정의 파일을 사용하여 API의 간접 호출 URL 가져오기
<a name="apigateway-obtain-url-openapi"></a>

API의 내보낸 OpenAPI 정의 파일에서 `host` 필드와 `basePath` 필드를 결합하여 이 루트 URL을 구성할 수도 있습니다. API 내보내기 방법에 대한 지침은 [API Gateway에서 REST API 내보내기](api-gateway-export-api.md) 섹션을 참조하세요.

## API 간접 호출
<a name="apigateway-call-api"></a>

브라우저, curl 또는 [Postman](https://www.postman.com/)과 같은 기타 애플리케이션을 사용하여 배포된 API를 직접 호출할 수 있습니다.

또한 API Gateway 콘솔을 사용하여 API 호출을 테스트할 수 있습니다. 테스트에서는 API Gateway의 `TestInvoke` 기능을 사용하므로 API를 배포하기 전에 API를 테스트할 수 있습니다. 자세한 내용은 [API Gateway 콘솔을 사용하여 REST API 메서드 테스트](how-to-test-method.md) 단원을 참조하십시오.

**참고**  
호출 URL의 쿼리 문자열 파라미터 값은 `%%`를 포함할 수 없습니다.

### 웹 브라우저를 사용하여 API 간접 호출
<a name="apigateway-call-api-brower"></a>

API에서 익명 액세스를 허용하는 경우 웹 브라우저를 사용하여 `GET` 메서드를 간접 호출할 수 있습니다. 브라우저의 주소 표시줄에 전체 간접 호출 URL을 입력합니다.

다른 방법이나 인증이 필요한 직접 호출의 경우 페이로드를 지정하거나 요청에 서명해야 합니다. AWS SDK 중 하나를 사용하여 HTML 페이지 뒤의 스크립트나 클라이언트 애플리케이션에서 이러한 호출을 처리할 수 있습니다.

#### curl을 사용하여 API 간접 호출
<a name="apigateway-call-api-curl"></a>

터미널에서 [curl](https://curl.se/)과 같은 도구를 사용하여 API를 직접 호출할 수 있습니다. 다음 예제 curl 명령은 API `prod` 스테이지의 `getUsers` 리소스에서 GET 메서드를 간접 호출합니다.

------
#### [ Linux or Macintosh ]

```
curl -X GET 'https://{{b123abcde4}}.execute-api.{{us-west-2}}.amazonaws.com/prod/getUsers'
```

------
#### [ Windows ]

```
curl -X GET "https://{{b123abcde4}}.execute-api.{{us-west-2}}.amazonaws.com/prod/getUsers"
```

------