使用 API Gateway 控制台设置方法
使用 REST API 控制台创建方法时,您可以同时配置集成请求和方法请求。默认情况下,API Gateway 会为您的方法创建 200
方法响应。
以下说明介绍如何编辑方法请求设置,以及如何为您的方法创建其它方法响应。
在 API Gateway 控制台中编辑 API Gateway 方法请求
这些说明假设您已创建了方法请求。有关如何创建方法的更多信息,请参阅使用 API Gateway 控制台设置 API 集成请求。
-
在资源窗格中,选择方法,然后选择方法请求选项卡。
在方法请求设置部分中,选择编辑。
-
对于授权,选择一个可用的授权方。
-
要为任何用户启用对此方法的开放式访问,请选择无。如果未更改默认设置,则可跳过此步骤。
-
要使用 IAM 权限来控制客户端对方法的访问权限,请选择
AWS_IAM
。如果选择此选项,只允许具有已附加正确 IAM 策略的 IAM 角色的用户调用此方法。要创建 IAM 角色,请指定类似于以下格式的访问策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "
resource-statement
" ] } ] }在此访问策略中,
resource-statement
是方法的 ARN。您可以通过在资源页面上选择方法来找到该方法的 ARN。有关设置 IAM 权限的更多信息,请参阅使用 IAM 权限控制对 REST API 的访问。要创建 IAM 角色,您可以调整以下教程中的说明:为 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 中的 REST API 的请求验证。
-
选择需要 API 密钥以需要 API 密钥。启用后,将在使用计划中使用 API 密钥以限制客户端流量。
-
(可选)要在 API Gateway 生成的此 API 的 Java SDK 中分配操作名称,请为输入名称输入一个名称。例如,对于
GET /pets/{petId}
的方法请求,相对应的默认 Java 开发工具包操作名称为GetPetsPetId
。此名称由此方法的 HTTP 动词 (GET
) 和资源路径变量名称 (Pets
和PetId
) 构建而成。如果您将操作名称设置为getPetById
,开发工具包操作名称将变为GetPetById
。 -
要向方法中添加查询字符串参数,请执行以下操作:
-
选择 URL 查询字符串参数,然后选择添加查询字符串。
-
对于名称,输入查询字符串参数的名称。
-
如果要将新创建的查询字符串参数用于请求验证,请选择必填。有关请求验证的更多信息,请参阅针对 API Gateway 中的 REST API 的请求验证。
-
如果要将新创建的查询字符串参数用作缓存密钥的一部分,请选中缓存。有关缓存的更多信息,请参阅 将方法或集成参数用作索引缓存响应的缓存键。
要移除查询字符串参数,请选择移除。
-
-
要向方法中添加标头参数,请执行以下操作:
-
选择 HTTP 请求标头,然后选择添加标头。
-
对于名称,输入标头的名称。
-
如果要将新创建的标头用于请求验证,请选择必填。有关请求验证的更多信息,请参阅针对 API Gateway 中的 REST API 的请求验证。
-
如果要将新创建的标头用作缓存密钥的一部分,请选中缓存。有关缓存的更多信息,请参阅 将方法或集成参数用作索引缓存响应的缓存键。
要移除标头,请选择移除。
-
-
要声明包含
POST
、PUT
或PATCH
HTTP 动词的方法请求的负载格式,请选择请求正文,然后执行以下操作:-
选择添加模型。
-
对于内容类型,输入 MIME 类型(例如
application/json
)。 -
对于模型,请从下拉菜单中选择一个模型。该 API 目前可用的模型包括默认
Empty
和Error
模型以及您创建和添加到 API 的模型集合的任何模型。有关创建模型的更多信息,请参阅针对 REST API 的数据模型。注意
模型适用于向客户端通知预期数据格式的负载。这对生成骨骼映射模板非常有帮助。请务必使用 Java、C #、Objective-C 和 Swift 等语言编程生成 API 的强类型开发工具包。仅在已针对负载启用请求验证时才需要该开发工具包。
-
-
选择保存。
使用 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
错误响应。 -
选择添加标头。
-
对于标头名称,输入名称。
要将标头从后端返回给客户端,请在方法响应中添加标头。
-
选择添加模型以定义方法响应正文的格式。
为内容类型输入响应负载的媒体类型,然后从模型下拉菜单中选择模型。
-
选择保存。
要修改现有响应,请导航到您的方法响应,然后选择编辑。要更改 HTTP 状态代码,请选择删除并创建新的方法响应。
对于从后端返回的每个响应,您必须将兼容的响应配置为方法响应。但配置方法响应标头和负载模型是可选的,除非您先将后端的结果映射到方法响应,然后再返回给客户端。此外,如果您要为 API 生成强类型开发工具包,方法响应负载模型就非常重要。