

# 调用 API Gateway 中的 REST API
<a name="how-to-call-api"></a>

为调用已部署的 API，客户端需要向 API Gateway 组件服务的 URL 提交请求以完成 API 执行（称为 `execute-api`）。

REST API 的基本 URL 采用以下格式：

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

其中，*api-id* 是 API 标识符，*region* 是 Amazon 区域，*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 开发工具包](how-to-call-apigateway-generated-java-sdk.md)
+ [使用由 API Gateway 为 REST API 生成的 Android 开发工具包](how-to-generate-sdk-android.md)
+ [使用由 API Gateway 为 REST API 生成的 JavaScript 开发工具包](how-to-generate-sdk-javascript.md)
+ [使用由 API Gateway 为 REST API 生成的 Ruby 开发工具包](how-to-call-sdk-ruby.md)
+ [在 Objective-C 或 Swift 中使用由 API Gateway 为 REST API 生成的 iOS 开发工具包](how-to-generate-sdk-ios.md)

## 获取 API 的调用 URL
<a name="apigateway-how-to-call-rest-api"></a>

您可以使用控制台、Amazon CLI 或导出的 OpenAPI 定义来获取 API 的调用 URL。

### 使用控制台获取 API 的调用 URL
<a name="apigateway-obtain-url-console"></a>

以下过程介绍了如何在 REST API 控制台中获取 API 的调用 URL。

**使用 REST API 控制台获取 API 的调用 URL**

1. 通过以下网址登录到 Amazon API Gateway 控制台：[https://console.aws.amazon.com/apigateway](https://console.amazonaws.cn/apigateway)。

1. 选择已部署的 API。

1. 从主导航窗格中选择**阶段**。

1. 在**阶段详细信息**下，选择复制图标以复制您 API 的调用 URL。

   此 URL 用于您的 API 的根资源。

1. 要获取 API 中其它资源的 API 的调用 URL，请在二级导航窗格下展开此阶段，然后选择一个方法。

1. 选择复制图标来复制 API 的资源级调用 URL。

#### 使用 Amazon CLI 获取 API 的调用 URL
<a name="apigateway-obtain-url-cli"></a>

以下过程介绍了如何使用 Amazon CLI 获取 API 的调用 URL。

**使用 Amazon CLI 获取 API 的调用 URL**

1. 使用以下命令来获取 `rest-api-id`。此命令返回您的区域中的所有 `rest-api-id` 值。有关更多信息，请参阅 [get-rest-apis](https://docs.amazonaws.cn/cli/latest/reference/apigateway/get-rest-apis.html)。

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

1. 将示例 `rest-api-id` 替换为您的 `rest-api-id`，将示例 *\$1stage-name\$1* 替换为您的 *\$1stage-name\$1*，将 *\$1region\$1* 替换为您的区域。

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

##### 使用 API 的已导出 OpenAPI 定义文件获取 API 的调用 URL
<a name="apigateway-obtain-url-openapi"></a>

此外，您也可以构造根 URL，方法是组合 API 的已导出 OpenAPI 定义文件的 `host` 和 `basePath` 字段。有关如何导出 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 中的查询字符串参数值不得包含 `%%`。

### 使用 Web 浏览器调用 API
<a name="apigateway-call-api-brower"></a>

如果 API 允许匿名访问，您可以使用任何 Web 浏览器来调用任何 `GET` 方法。在浏览器的地址栏中输入完整的调用 URL。

对于其它方法或任何要求身份验证的调用，您必须指定负载或签署请求。您可以在 HTML 页面背后的脚本中，或者在使用 Amazon 开发工具包之一的客户端应用程序中处理这些调用。

#### 使用 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"
```

------