使用 REST API 客户端调用 API - Amazon API Gateway

使用 REST API 客户端调用 API

为了提供端到端教程,我们现在演示如何使用支持AWS IAM 授权的 Postman 调用 API。

使用 Postman 调用我们的 Amazon S3 代理 API
  1. 部署或重新部署 API。记下位于阶段编辑器顶部的调用 URL 旁边显示的 API 的基本 URL。

  2. 启动 Postman。

  3. 选择授权,然后选择 AWS Signature。分别在 AccessKeySecretKey 输入字段中键入 IAM 用户的访问密钥 ID 和秘密访问密钥。在 AWS 区域文本框中输入将您的 API 部署到的 AWS 区域。在服务名称输入字段中输入 execute-api

    您可以在 IAM 管理控制台的 IAM 用户账户的安全凭证选项卡中创建一对密钥。

  4. 要在 amzn-s3-demo-bucket 区域内将名为 {region} 的存储桶添加到您的 Amazon S3 账户,请执行以下操作:

    1. 从下拉方法列表中选择 PUT 并键入方法 URL (https://api-id.execute-api.aws-region.amazonaws.com/stage/folder-name)

    2. Content-Type 标头值设置为 application/xml。在设置内容类型之前,您可能需要先删除任何现有标头。

    3. 选择正文菜单项并键入以下 XML 片段作为请求正文:

      <CreateBucketConfiguration> <LocationConstraint>{region}</LocationConstraint> </CreateBucketConfiguration>
    4. 选择发送以提交请求。如果成功,您应该会收到一个负载为空的 200 OK 响应。

  5. 要将文本文件添加到存储桶,请按照上述说明执行操作。如果您在 URL 中为 amzn-s3-demo-bucket 指定存储桶名称 {folder},为 Readme.txt 指定文件名 {item},并提供文本字符串 Hello, World! 作为文件内容(从而使其成为请求负载),则此请求将成为

    PUT /S3/amzn-s3-demo-bucket/Readme.txt HTTP/1.1 Host: 9gn28ca086.execute-api.{region}.amazonaws.com Content-Type: application/xml X-Amz-Date: 20161015T062647Z Authorization: AWS4-HMAC-SHA256 Credential=access-key-id/20161015/{region}/execute-api/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=ccadb877bdb0d395ca38cc47e18a0d76bb5eaf17007d11e40bf6fb63d28c705b Cache-Control: no-cache Postman-Token: 6135d315-9cc4-8af8-1757-90871d00847e Hello, World!

    如果一切正常,您应该会收到一个负载为空的 200 OK 响应。

  6. 要获取我们刚刚添加到 Readme.txt 存储桶的 amzn-s3-demo-bucket 文件的内容,请发出类似于以下的 GET 请求:

    GET /S3/amzn-s3-demo-bucket/Readme.txt HTTP/1.1 Host: 9gn28ca086.execute-api.{region}.amazonaws.com Content-Type: application/xml X-Amz-Date: 20161015T063759Z Authorization: AWS4-HMAC-SHA256 Credential=access-key-id/20161015/{region}/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=ba09b72b585acf0e578e6ad02555c00e24b420b59025bc7bb8d3f7aed1471339 Cache-Control: no-cache Postman-Token: d60fcb59-d335-52f7-0025-5bd96928098a

    如果成功,您应该会收到负载为 200 OK 文本字符串的 Hello, World! 响应。

  7. 要列出 amzn-s3-demo-bucket 存储桶中的项目,请提交以下请求:

    GET /S3/amzn-s3-demo-bucket HTTP/1.1 Host: 9gn28ca086.execute-api.{region}.amazonaws.com Content-Type: application/xml X-Amz-Date: 20161015T064324Z Authorization: AWS4-HMAC-SHA256 Credential=access-key-id/20161015/{region}/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=4ac9bd4574a14e01568134fd16814534d9951649d3a22b3b0db9f1f5cd4dd0ac Cache-Control: no-cache Postman-Token: 9c43020a-966f-61e1-81af-4c49ad8d1392

    如果成功,您应该会收到 200 OK 响应且其 XML 负载在指定存储桶中显示单个项目,除非您在提交请求前将更多文件添加到存储桶中。

    <?xml version="1.0" encoding="UTF-8"?> <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>apig-demo-5</Name> <Prefix></Prefix> <Marker></Marker> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>Readme.txt</Key> <LastModified>2016-10-15T06:26:48.000Z</LastModified> <ETag>"65a8e27d8879283831b664bd8b7f0ad4"</ETag> <Size>13</Size> <Owner> <ID>06e4b09e9d...603addd12ee</ID> <DisplayName>user-name</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult>
注意

要上传或下载映像,您需要将内容处理设置为 CONVERT_TO_BINARY。