本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 API Gateway 控制台设置方法
设置 API 方法之前,请验证以下内容:
-
方法在 API Gateway 中必须可用。按照教程:使用 HTTP 非代理集成构建 REST API中的说明进行操作。
-
如果您希望方法与 Lambda 函数进行通信,则必须已在 IAM 中创建 Lambda 调用角色和 Lambda 执行角色。您还必须创建将在 AWS Lambda中与该方法进行通信的 Lambda 函数。要创建角色和函数,请使用使用 Lambda 集成构建 API Gateway REST API的为 Lambda 非代理集成创建 Lambda 函数中的说明。
-
如果您希望该方法与 HTTP 或 HTTP 代理集成进行通信,则必须已创建且有权访问将与您的方法进行通信的 HTTP 终端节点 URL。
-
确认 API Gateway 支持 HTTP 和 HTTP 代理终端节点的证书。有关详细信息,请参阅 API Gateway 支持的 HTTP 和 HTTP 代理集成证书的颁发机构。
在 API Gateway 控制台中设置 API Gateway 方法请求
要使用 API Gateway 控制台指定 API 的方法请求/响应以及配置该方法对请求授权的方式,请按照以下说明操作。
注意
这些说明假设您已完成 使用 API Gateway 控制台设置 API 集成请求中的步骤。它们非常适用于对使用 Lambda 集成构建 API Gateway REST API给出的讨论进行补充。
-
在资源窗格中,选择您的方法,然后选择方法请求选项卡。
在方法请求设置部分中,选择编辑。
-
对于授权,选择一个可用的授权方。
-
要为任何用户启用对此方法的开放式访问,请选择无。如果未更改默认设置,则可跳过此步骤。
-
要使用 IAM 权限来控制客户端对方法的访问权限,请选择
AWS_IAM
。如果选择此选项,只允许具有已附加正确 IAM 策略的 IAM 角色的用户调用此方法。要创建 IAM 角色,请指定类似于以下格式的访问策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "
resource-statement
" ] } ] }在此访问策略中,
resource-statement
是授权设置部分中 ARN 字段的值。有关设置 IAM 权限的更多信息,请参阅使用 IAM 权限控制对 API 的访问。要创建 IAM 角色,您可以调整使用 Lambda 集成构建 API Gateway REST API的创建 Lambda 函数部分的“创建 Lambda 调用角色及其策略”和“创建 Lambda 执行角色及其策略”中的说明。
-
要使用 Lambda 授权方,请选择令牌或请求授权方。创建 Lambda 授权方,让此选择显示在下拉菜单中。有关如何创建 Lambda 授权方的信息,请参阅 使用 API Gateway Lambda 授权方。
-
要使用 Amazon Cognito 用户池,请在 Cognito 用户池授权方下选择可用的用户池。在 Amazon Cognito 中创建一个用户群体,并在 API Gateway 中创建一个 Amazon Cognito 用户群体授权方,以便在下拉菜单中显示此选择。有关如何创建 Amazon Cognito 用户池授权方的信息,请参阅 使用 Amazon Cognito 用户池作为授权方控制对 REST API 的访问。
-
-
要指定请求验证,请从请求验证程序下拉菜单中选择一个值。要关闭请求验证,请选择无。有关各选项的更多信息,请参阅在 API Gateway 中使用请求验证。
-
选择需要 API 密钥以需要 API 密钥。启用后,将在使用计划中使用 API 密钥以限制客户端流量。
-
(可选)要在 API Gateway 生成的此 API 的 Java SDK 中分配操作名称,请为输入名称输入一个名称。例如,对于
GET /pets/{petId}
的方法请求,相对应的默认 Java 开发工具包操作名称为GetPetsPetId
。此名称由此方法的 HTTP 动词 (GET
) 和资源路径变量名称 (Pets
和PetId
) 构建而成。如果您将操作名称设置为getPetById
,开发工具包操作名称将变为GetPetById
。 -
要向方法中添加查询字符串参数,请执行以下操作:
-
选择 URL 查询字符串参数,然后选择添加查询字符串。
-
对于名称,输入查询字符串参数的名称。
-
如果要将新创建的查询字符串参数用于请求验证,请选择必填。有关请求验证的更多信息,请参阅在 API Gateway 中使用请求验证。
-
如果要将新创建的查询字符串参数用作缓存密钥的一部分,请选中缓存。有关缓存的更多信息,请参阅 将方法或集成参数用作索引缓存响应的缓存键。
要移除查询字符串参数,请选择移除。
-
-
要向方法中添加标头参数,请执行以下操作:
-
选择 HTTP 请求标头,然后选择添加标头。
-
对于名称,输入标头的名称。
-
如果要将新创建的标头用于请求验证,请选择必填。有关请求验证的更多信息,请参阅在 API Gateway 中使用请求验证。
-
如果要将新创建的标头用作缓存密钥的一部分,请选中缓存。有关缓存的更多信息,请参阅 将方法或集成参数用作索引缓存响应的缓存键。
要移除标头,请选择移除。
-
-
要声明包含
POST
、PUT
或PATCH
HTTP 动词的方法请求的负载格式,请选择请求正文,然后执行以下操作: -
选择保存。
使用 API Gateway 控制台设置 API Gateway 方法响应
API 方法可以有一个或多个响应。每个响应都通过 HTTP 状态代码编制索引。默认情况下,API Gateway 控制台将 200
响应添加到方法响应。您可以对其进行修改,例如让该方法返回 201
。还可以添加其他响应,例如添加 409
表示拒绝访问,添加 500
表示所用的阶段变量未初始化。
要使用 API Gateway 控制台修改、删除或添加对 API 方法的响应,请按照以下说明操作。
-
在资源窗格中,选择您的方法,然后选择方法响应选项卡。您可能需要选择右箭头按钮,以显示该选项卡。
-
在方法响应设置部分,选择创建响应。
-
对于 HTTP 状态代码,输入 HTTP 状态代码,例如
200
、400
或500
。如果后端返回的响应未定义相应的方法响应,API Gateway 就无法将响应返回给客户端。而是返回
500 Internal server error
错误响应。 -
选择 Add header (添加标头)。
-
对于标头名称,输入名称。
要将标头从后端返回给客户端,请在方法响应中添加标头。
-
选择添加模型以定义方法响应正文的格式。
为内容类型输入响应负载的媒体类型,然后从模型下拉菜单中选择模型。
-
选择保存。
要修改现有响应,请导航到您的方法响应,然后选择编辑。要更改 HTTP 状态代码,请选择删除并创建新的方法响应。
对于从后端返回的每个响应,您必须将兼容的响应配置为方法响应。但配置方法响应标头和负载模型是可选的,除非您先将后端的结果映射到方法响应,然后再返回给客户端。此外,如果您要为 API 生成强类型开发工具包,方法响应负载模型就非常重要。