Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

API Gateway 使用案例

使用 API Gateway 创建 REST API

API Gateway REST API 由资源和方法组成。资源是一种逻辑实体,应用程序可以通过资源路径来访问资源。方法与您的 API 用户提交的 REST API 请求以及返回给该用户的相应响应对应。

例如,/incomes 可以是代表应用程序用户收入的资源路径。一个资源可以包含一个或多个由适当的 HTTP 动词 (如 GET、POST、PUT、PATCH 和 DELETE) 定义的操作。资源路径和操作的组合构成 API 的方法。例如,POST /incomes 方法可以添加调用方获得的收入,GET /expenses 方法可以查询报告的调用方支出。

应用程序不需要知道在后端所请求数据的存储位置和提取位置。在 API Gateway REST API 中,前端由方法请求方法响应封装。API 通过集成请求集成响应与后端连接。

例如,使用 DynamoDB 作为后端,API 开发人员会设置集成请求以便将传入方法请求转发到所选的后端。该设置包括适当 DynamoDB 操作的规范、所需的 IAM 角色和策略以及所需的输入数据转换。后端将结果作为集成响应返回到 API Gateway。要将与指定 HTTP 状态代码的适当方法响应对应的集成响应路由到客户端,您可以配置集成响应,将所需的响应参数从集成映射到方法。然后,您可以根据需要将后端的输出数据格式转换为前端的输出数据格式。API Gateway 让您能够为负载定义一个架构或模型,以方便设置正文映射模板。

API Gateway 提供 REST API 管理功能,例如:

  • 支持使用 API Gateway 到 OpenAPI 的扩展生成开发工具包和创建 API 文档

  • HTTP 请求的限制

使用 API Gateway 创建 WebSocket API

在 WebSocket API 中,客户端和服务器都可以随时相互发送消息。后端服务器可以轻松地将数据推送到连接的用户和设备,从而无需实施复杂的轮询机制。

例如,您可以使用 API Gateway WebSocket API 和 AWS Lambda 来构建无服务器应用程序,以便在聊天室中向个人用户或用户组发送消息以及从个人用户或用户组接收消息。或者,您可以根据消息内容来调用后端服务,例如 AWS Lambda、Amazon Kinesis 或 HTTP 终端节点。

您可以使用 API Gateway WebSocket API 来构建安全的实时通信应用程序,而无需预置或管理任何服务器来管理连接或大规模数据交换。目标使用案例包括实时应用程序,例如:

  • 聊天应用程序

  • 实时控制面板,如股票代码

  • 实时提醒和通知

API Gateway 提供 WebSocket API 管理功能,例如:

  • 连接和消息的监控和限制

  • 使用 AWS X-Ray 在消息经由 API 传递到后端服务时跟踪消息

  • 易于与 HTTP/HTTPS 终端节点集成

谁使用 API Gateway?

使用 API Gateway 的开发人员有两种:API 开发人员和应用程序开发人员。

API 开发人员创建和部署 API,以便启用 API Gateway 中所需的功能。API 开发人员必须是拥有 API 的 AWS 账户中的 IAM 用户。

应用程序开发人员通过在 API Gateway 中调用由 API 开发人员创建的 WebSocket 或 REST API 来构建一个正常运行的应用程序以调用 AWS 服务。

应用程序开发人员是 API 开发人员的客户。应用程序开发人员不需要拥有 AWS 账户,前提是 API 不需要 IAM 权限或通过 Amazon Cognito 用户池联合身份所支持的第三方联合身份提供商来支持用户授权。此类身份提供商包括 Amazon、Amazon Cognito 用户池、Facebook 和 Google。

创建和管理 API Gateway API

API 开发人员使用名为 apigateway 的用于 API 管理的 API Gateway 服务组件来创建、配置和部署 API。每个 API 都包含一组资源和方法。资源是一种逻辑实体,应用程序可以通过资源路径来访问资源。

作为 API 开发人员,您可以按照 Amazon API Gateway 入门 中所述使用 API Gateway 管理控制台或者通过调用 API Gateway V1 和 V2 API 参考 来创建和管理 API。这一 API 有若干种调用方式。其中包括使用 AWS 命令行界面 (CLI),或者使用 AWS 开发工具包。此外,您还可以使用 AWS CloudFormation 模板或(如果是 REST API)基于 OpenAPI 的 API Gateway 扩展 来支持创建 API。有关提供 API Gateway 的区域以及关联的控制服务终端节点的列表,请参阅区域和终端节点

调用 API Gateway API

应用程序开发人员使用名为 execute-api 的用于 API 执行的 API Gateway 服务组件来调用在 API Gateway 中创建或部署的 API。底层编程实体由创建的 API 公开。此类 API 有若干种调用方式。您可以使用 API Gateway 控制台来测试调用 API。对于 REST API,您可以使用 REST API 客户端(如 cURLPOSTMAN)或 API Gateway 为 API 生成的开发人员工具包来调用 API。