使用 API Gateway 控制台设置方法 - Amazon API Gateway

使用 API Gateway 控制台设置方法

使用 REST API 控制台创建方法时,您可以同时配置集成请求和方法请求。默认情况下,API Gateway 会为您的方法创建 200 方法响应。

以下说明介绍如何编辑方法请求设置,以及如何为您的方法创建其它方法响应。

在 API Gateway 控制台中编辑 API Gateway 方法请求

这些说明假设您已创建了方法请求。有关如何创建方法的更多信息,请参阅使用 API Gateway 控制台设置 API 集成请求

  1. 资源窗格中,选择方法,然后选择方法请求选项卡。

  2. 方法请求设置部分中,选择编辑

  3. 对于授权,选择一个可用的授权方。

    1. 要为任何用户启用对此方法的开放式访问,请选择。如果未更改默认设置,则可跳过此步骤。

    2. 要使用 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 函数

    3. 要使用 Lambda 授权方,请选择令牌或请求授权方。创建 Lambda 授权方,让此选择显示在下拉菜单中。有关如何创建 Lambda 授权方的信息,请参阅 使用 API Gateway Lambda 授权方

    4. 要使用 Amazon Cognito 用户池,请在 Cognito 用户池授权方下选择可用的用户池。在 Amazon Cognito 中创建一个用户群体,并在 API Gateway 中创建一个 Amazon Cognito 用户群体授权方,以便在下拉菜单中显示此选择。有关如何创建 Amazon Cognito 用户池授权方的信息,请参阅 使用 Amazon Cognito 用户池作为授权方控制对 REST API 的访问

  4. 要指定请求验证,请从请求验证程序下拉菜单中选择一个值。要关闭请求验证,请选择。有关各选项的更多信息,请参阅针对 API Gateway 中的 REST API 的请求验证

  5. 选择需要 API 密钥以需要 API 密钥。启用后,将在使用计划中使用 API 密钥以限制客户端流量。

  6. (可选)要在 API Gateway 生成的此 API 的 Java SDK 中分配操作名称,请为输入名称输入一个名称。例如,对于 GET /pets/{petId} 的方法请求,相对应的默认 Java 开发工具包操作名称为 GetPetsPetId。此名称由此方法的 HTTP 动词 (GET) 和资源路径变量名称 (PetsPetId) 构建而成。如果您将操作名称设置为 getPetById,开发工具包操作名称将变为 GetPetById

  7. 要向方法中添加查询字符串参数,请执行以下操作:

    1. 选择 URL 查询字符串参数,然后选择添加查询字符串

    2. 对于名称,输入查询字符串参数的名称。

    3. 如果要将新创建的查询字符串参数用于请求验证,请选择必填。有关请求验证的更多信息,请参阅针对 API Gateway 中的 REST API 的请求验证

    4. 如果要将新创建的查询字符串参数用作缓存密钥的一部分,请选中缓存。有关缓存的更多信息,请参阅 将方法或集成参数用作索引缓存响应的缓存键

    要移除查询字符串参数,请选择移除

  8. 要向方法中添加标头参数,请执行以下操作:

    1. 选择 HTTP 请求标头,然后选择添加标头

    2. 对于名称,输入标头的名称。

    3. 如果要将新创建的标头用于请求验证,请选择必填。有关请求验证的更多信息,请参阅针对 API Gateway 中的 REST API 的请求验证

    4. 如果要将新创建的标头用作缓存密钥的一部分,请选中缓存。有关缓存的更多信息,请参阅 将方法或集成参数用作索引缓存响应的缓存键

    要移除标头,请选择移除

  9. 要声明包含 POSTPUTPATCH HTTP 动词的方法请求的负载格式,请选择请求正文,然后执行以下操作:

    1. 选择添加模型

    2. 对于内容类型,输入 MIME 类型(例如 application/json)。

    3. 对于模型,请从下拉菜单中选择一个模型。该 API 目前可用的模型包括默认 EmptyError 模型以及您创建和添加到 API 的模型集合的任何模型。有关创建模型的更多信息,请参阅针对 REST API 的数据模型

      注意

      模型适用于向客户端通知预期数据格式的负载。这对生成骨骼映射模板非常有帮助。请务必使用 Java、C #、Objective-C 和 Swift 等语言编程生成 API 的强类型开发工具包。仅在已针对负载启用请求验证时才需要该开发工具包。

  10. 选择保存

使用 API Gateway 控制台设置 API Gateway 方法响应

API 方法可以有一个或多个响应。每个响应都通过 HTTP 状态代码编制索引。默认情况下,API Gateway 控制台将 200 响应添加到方法响应。您可以对其进行修改,例如让该方法返回 201。还可以添加其他响应,例如添加 409 表示拒绝访问,添加 500 表示所用的阶段变量未初始化。

要使用 API Gateway 控制台修改、删除或添加对 API 方法的响应,请按照以下说明操作。

  1. 资源窗格中,选择方法,然后选择方法响应选项卡。您可能需要选择右箭头按钮,以显示该选项卡。

  2. 方法响应设置部分,选择创建响应

  3. 对于 HTTP 状态代码,输入 HTTP 状态代码,例如200400500

    如果后端返回的响应未定义相应的方法响应,API Gateway 就无法将响应返回给客户端。而是返回 500 Internal server error 错误响应。

  4. 选择添加标头

  5. 对于标头名称,输入名称。

    要将标头从后端返回给客户端,请在方法响应中添加标头。

  6. 选择添加模型以定义方法响应正文的格式。

    内容类型输入响应负载的媒体类型,然后从模型下拉菜单中选择模型。

  7. 选择保存

要修改现有响应,请导航到您的方法响应,然后选择编辑。要更改 HTTP 状态代码,请选择删除并创建新的方法响应。

对于从后端返回的每个响应,您必须将兼容的响应配置为方法响应。但配置方法响应标头和负载模型是可选的,除非您先将后端的结果映射到方法响应,然后再返回给客户端。此外,如果您要为 API 生成强类型开发工具包,方法响应负载模型就非常重要。