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

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

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

构建并测试示例 API

  1. 通过 https://console.amazonaws.cn/apigateway 登录 API Gateway 控制台。

  2. 请执行下列操作之一:

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

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

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

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

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

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

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

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

    生成的 Method Execution (方法执行) 窗格将显示所选 (POST /pets) 方法的结构和行为的逻辑视图:Method Request (方法请求)Method Response (方法响应) 是带有 API 前端的 API 接口(客户端),而 Integration Request (集成请求)Integration Response (集成响应) 是带有后端的 API 接口 (http://petstore-demo-endpoint.execute-api.com/petstore/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 (部署 API)

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

    在生成的 Stage Editor (阶段编辑器) 窗格中,Invoke URL (调用 URL) 将显示用于调用 API 的 GET / 方法请求的 URL。

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

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

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

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

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