在 Amazon API Gateway 中调用 REST API - Amazon API Gateway

在 Amazon API Gateway 中调用 REST API

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

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

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

其中,restapi_id 是 API 标识符,region 是 AWS 区域,stage_name 是 API 部署的阶段名称。

重要

在可以调用 API 之前,必须将其部署在 API Gateway 中。有关部署 API 的说明,请参阅在 Amazon API Gateway 中部署 REST API

获取 API 的调用 URL

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

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

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

使用 REST API 控制台获取 API 的调用 URL
  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway

  2. 选择已部署的 API。

  3. 从主导航窗格中选择阶段

  4. 阶段详细信息下,选择复制图标以复制您 API 的调用 URL。

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

    创建 REST API 后,控制台会显示 API 的调用 URL。
  5. 要获取 API 中其它资源的 API 的调用 URL,请在二级导航窗格下展开此阶段,然后选择一个方法。

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

    您的 REST API 的资源级别 URL 位于阶段的二级导航窗格下方。

使用 AWS CLI 获取 API 的调用 URL

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

使用 AWS CLI 获取 API 的调用 URL
  1. 使用以下命令来获取 rest-api-id。此命令返回您的区域中的所有 rest-api-id 值。有关更多信息,请参阅 get-rest-apis

    aws apigateway get-rest-apis
  2. 将示例 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

此外,您也可以构造根 URL,方法是组合 API 的已导出 OpenAPI 定义文件的 hostbasePath 字段。有关如何导出 API 的说明,请参阅从 API Gateway 导出 REST API

调用 API

您可以使用浏览器、curl 或其它应用程序(例如 Postman)调用已部署的 API。

此外,您可以使用 API Gateway 控制台测试 API 调用。测试使用 API Gateway 的 TestInvoke 特征,该特征允许在部署 API 之前对 API 进行测试。有关更多信息,请参阅 使用 API Gateway 控制台测试 REST API 方法

注意

调用 URL 中的查询字符串参数值不得包含 %%

使用 Web 浏览器调用 API

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

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

使用 curl 调用 API

您可以在终端中使用像 curl 这样的工具来调用 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"