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

在 API Gateway 控制台中根据示例创建一个 API 并进行测试

以下过程将指导您完成在 API Gateway 控制台中根据示例创建一个 API 并进行测试的步骤。

构建并测试示例 API

  1. 登录 API Gateway 控制台。

  2. 执行以下任一操作:

    1. 如果这是您的账户中的首个 API,请从 API Gateway 控制台欢迎页面中选择 Get Started

      如果出现提示,请选择 OK 来关闭它们并继续。

    2. 如果这不是您的首个 API,请从 API Gateway APIs 主页中选择 Create API

  3. Create new API 下,选择 Examples API,然后选择 Import 以创建示例 API。对于您的首个 API,API Gateway 控制台将默认从此选项开始。

    在选择 Import 之前,您可以向下滚动 Swagger 定义以了解此示例 API 的详细信息。

  4. 新创建的 API 如下所示:

    Resources 窗格将所创建 API 的结构显示为节点树。在每个资源上定义的 API 方法均位于节点树的边缘。当选中某个资源时,其所有方法都将在右侧的 Methods 窗格中列出。每个方法下显示的是该方法的简短摘要,包括其终端节点 URL、授权类型和 API 密钥要求。

  5. 要查看某一方法的详细信息以修改其设置或测试方法调用,请从方法列表或资源树中选择相应的方法名称。在这里,我们选择 POST /pets 方法作为说明示例:

    生成的 Method Execution 窗格将显示所选 (POST /pets) 方法的结构和行为的逻辑视图:Method RequestMethod Response 是带有 API 前端的 API 接口 (客户端),而 Integration RequestIntegration Response 是带有后端的 API 接口 (http://petstore-demo-endpoint.execute-api.com/pets)。客户端可以使用 API 通过 Method Request 访问后端功能。如有必要,API Gateway 会先将客户端请求转换为 Integration Request 中后端可接受的形式,然后再将该传入请求转发至后端。转换后的请求被称为集成请求。同样地,后端向 Integration Response 中的 API Gateway 返回响应。API Gateway 随后将其路由至 Method Response,然后再将其发送到客户端。API Gateway 也会在必要时将后端响应数据映射为客户端所需的形式。

    对于 API 资源上的 POST 方法,如果该方法请求负载的格式与集成请求负载的格式相同,则无需修改该方法请求负载即可将其传递到集成请求。

    GET / 方法请求使用 MOCK 集成类型,且不与任何真实后端终端节点相关联。相应的 Integration Response 设置为返回静态 HTML 页面。调用该方法时,API Gateway 只需接受该请求并立即通过 Method Response 将配置的集成响应返回给客户端即可。您可以使用模拟集成来测试 API,无需后端终端节点。您也可以将其用于处理本地响应,即从正文映射模板生成的响应。

    作为 API 开发人员,您可以通过配置方法请求和方法响应来控制 API 的前端交互行为,通过设置集成请求和集成响应来控制 API 的后端交互行为。这些涉及到方法和它的相应集成之间的数据映射。我们将在使用 HTTP 自定义集成构建 API 中介绍方法设置。目前,我们的侧重点是测试 API 以提供端到端的用户体验。

  6. 选择 Client 上显示的 Test (如上图所示) 以开始进行测试。例如,要测试 POST /pets 方法,请在 Request Body 中输入以下 {"type": "dog","price": 249.99} 负载,然后再选择 Test 按钮。

    该输入可指定我们要添加到 PetStore 网站上的宠物列表中的宠物的属性。

  7. 结果显示如下:

    该输出的 Logs 条目显示了从方法请求到集成请求以及从集成响应到方法响应的状态更改。这可用于对导致请求失败的任何映射错误进行故障排除。此示例中没有应用任何映射:方法请求负载通过集成请求传递到后端;同样地,后端响应通过集成响应传递到方法响应。

    要使用客户端而非 API Gateway 的 test-invoke-request 功能来测试 API,您必须先将 API 部署至一个阶段。

  8. 要部署示例 API,请选择 PetStore API,然后从 Actions 菜单中选择 Deploy API

    Deploy API 中,对于 Deployment stage,选择 [New Stage],因为这是 API 的第一个部署。在 Stage name 中键入一个名称 (例如,test),然后选择性地在 Stage descriptionDeployment description 中键入描述。选择 Deploy

    在生成的 Stage Editor 窗格中,Invoke URL 将显示用于调用 API 的 GET / 方法请求的 URL。

  9. Stage Editor 中,使用 Invoke URL 链接在浏览器中提交 GET / 方法请求。成功的响应会返回由集成响应中的映射模板生成的结果。

  10. Stages 导航窗格中,展开 test 阶段,选择 /pets/{petId} 上的 GET,然后复制 Invoke URLhttps://api-id.execute-api.region.amazonaws.com/test/pets/{petId}{petId} 代表路径变量。

    Invoke URL 值 (在上一步中获取) 粘贴到浏览器的地址栏中,将 {petId} 替换为 1 (举例来说),然后按 Enter 键提交请求。系统应返回一个包含以下 JSON 负载的 200 OK 响应:

    { "id": 1, "type": "dog", "price": 249.99 }

    按上图所示来调用 API 方法是可行的,因为其 Authorization 类型设置为 NONE。如果使用了 AWS_IAM 授权,那么您需要使用签名版本 4 协议对请求进行签名。有关此类请求的示例,请参阅 使用 HTTP 自定义集成构建 API