AWS API Gateway详解 - Alex DeBrie

作者:API传播员 · 2025-11-12 · 阅读时间:6分钟
AWS API Gateway详解文章深入解析其核心结构,包括请求流、集成和响应流,涵盖授权、方法请求、代理类型、集成请求、网关响应、集成响应和方法响应等关键组件,帮助开发者掌握API管理和部署的完整生命周期,提升API安全性和效率。

AWS API Gateway详解

AWS API Gateway 是一种强大的工具,用于管理和部署 API。然而,理解其内部的各个元素可能会让人感到复杂和困惑。本文将通过详细的分步讲解,帮助您掌握 API Gateway 的核心概念和工作原理。


API Gateway 的基本结构

API Gateway 的核心由三个主要部分组成:

  1. 请求流:处理 HTTP 请求到达集成之前的所有内容,包括授权、验证和请求转换。
  2. 集成API 请求的实际处理部分,可能是 Lambda 函数、HTTP 端点或其他 AWS 服务。
  3. 响应流:处理来自集成的响应并将其转换为客户端可用的格式。

以下是 API Gateway 的生命周期图示:


授权:保护您的 API

授权是 API Gateway 的一个可选功能,但它可以显著增强您的 API 安全性。授权主要包括以下两种检查:

  1. 授权检查:通过 HTTP 头或查询字符串识别调用方,并决定是否允许请求。
  2. API 密钥检查:要求请求包含特定的 API 密钥,用于速率限制和用户配额管理。

配置授权的三种方法:

  • 使用 Cognito 用户池。
  • 使用 AWS IAM。
  • 使用 Lambda 自定义授权器。

关键点

  • 授权是可选的,但可以保护后端资源。
  • API 密钥主要用于速率限制和配额控制,而非细粒度授权。

方法请求:验证输入

方法请求定义了 API 的公共接口,负责验证传入请求的结构。您可以通过以下方式进行验证:

  1. 验证查询字符串和 HTTP 头:确保必要的参数和头信息存在。
  2. 验证请求体:通过 JSON 模型验证请求体的格式和内容。

配置方法请求的步骤:

  • 在控制台中启用请求验证。
  • 使用 CloudFormation 定义 RequestValidatorModel 资源。

关键点

  • 方法请求验证可以减少后端的样板代码。
  • 验证请求体需要定义 JSON 模型。

代理的三种类型

API Gateway 中的“代理”有三种不同的含义:

  1. 代理资源:捕获 HTTP 路径的动态部分,例如 /users/{userId}
  2. 代理集成:直接将请求转发到 Lambda 函数或 HTTP 端点。
  3. AWS 服务代理:将请求直接转发到其他 AWS 服务(如 SNS 或 DynamoDB)。

关键点

  • 代理资源可以简化动态路径的处理。
  • 使用代理集成可以减少开发时间,但会失去一些高级功能。

集成请求:转换数据

集成请求用于将客户端的请求转换为后端集成所需的格式。常见的转换场景包括:

  • 将 JSON 转换为 XML。
  • 添加后端集成所需的额外信息。
  • 移除敏感数据(如授权头)。

配置集成请求的步骤:

  • 使用 Velocity 模板语言(VTL)编写映射模板。
  • 为每种内容类型定义映射模板。

关键点

  • 如果使用 Lambda 或 HTTP 代理集成,可以跳过此步骤。
  • 映射模板可以帮助调整请求格式以适应后端需求。

网关响应:处理错误

当请求在到达后端之前失败时,API Gateway 会通过网关响应处理错误。每种网关响应类型包含以下元素:

  1. 响应类型:表示错误的类型(如无效请求体)。
  2. 状态码:返回给客户端的 HTTP 状态码。
  3. 响应参数:自定义返回的头信息。
  4. 响应模板:定义返回的错误消息体。

关键点

  • 网关响应可以自定义状态码和错误消息。
  • 默认响应可以覆盖以满足特定需求。

集成响应:标准化后端输出

集成响应用于将后端的响应转换为 API Gateway 可处理的格式。其配置方式与集成请求类似,但需要根据状态码匹配正则表达式来识别响应类型。

配置集成响应的步骤:

  • 使用正则表达式匹配状态码。
  • 编写 VTL 模板转换响应。

关键点

  • 如果使用代理集成,则无需配置集成响应。
  • 正则表达式用于识别状态码并选择相应的映射模板。

方法响应:定义输出接口

方法响应负责定义 API 的输出接口,包括状态码和响应体的结构。配置方法响应的步骤如下:

  1. 定义返回的状态码。
  2. 定义响应体的模型(可选)。

关键点

  • 方法响应适用于生成强类型 SDK 的场景。
  • 必须先定义方法响应,然后再配置集成响应。

总结

通过本文的学习,您已经了解了 API Gateway 的完整生命周期,包括请求流、集成和响应流的各个步骤。虽然 API Gateway 功能强大,但其配置也相对复杂。掌握这些核心概念和配置方法,将帮助您更高效地使用 API Gateway。

未来,我们还可以深入探讨 API Gateway 的高级功能,例如日志记录和发布管理。敬请期待!

原文链接: https://alexdebrie.com/posts/api-gateway-elements/