

# 开始使用 REST API 控制台
<a name="getting-started-rest-new-console"></a>

在本入门练习中，您将使用 API Gateway REST API 控制台创建无服务器 REST API。无服务器 API 让您可以专注于应用程序，而不是花时间预置和管理服务器。本次练习应在 20 分钟内完成，并且可以使用[AWS 免费套餐](https://aws.amazon.com/free/)完成。

首先，您将使用 Lambda 控制台创建 Lambda 函数。接下来，使用 API Gateway REST API 控制台创建 REST API 。然后，您将创建一个 API 方法，并使用 Lambda 代理集成将该方法与 Lambda 函数集成。最后，您将部署并调用您的 API。

当您调用 REST API 时，API Gateway 会将请求路由到您的 Lambda 函数。Lambda 运行函数并将响应返回 API Gateway。然后 API Gateway 会向您返回该响应。

![\[您在本教程中创建的 REST API 的概述。\]](http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/images/getting-started-overview-rest.png)


要完成本练习，您需要一个 AWS 账户以及一位具有控制台访问权限的 AWS Identity and Access Management (IAM) 用户。有关更多信息，请参阅 [设置为使用 API Gateway](setting-up.md)。

**Topics**
+ [步骤 1：创建 Lambda 函数](#getting-started-rest-new-console-create-function)
+ [步骤 2：创建 REST API](#getting-started-rest-new-console-create-api)
+ [步骤 3：创建 Lambda 代理集成](#getting-started-rest-new-console-create-integration)
+ [步骤 4：部署您的 API](#getting-started-rest-new-console-deploy)
+ [步骤 5：调用您的 API](#getting-started-rest-new-console-invoke-api)
+ [（可选）第 6 步：清除](#getting-started-cleanup-rest)

## 步骤 1：创建 Lambda 函数
<a name="getting-started-rest-new-console-create-function"></a>

将 Lambda 函数用作您的 API 后端。Lambda 只在需要时运行您的代码，并自动进行扩展，从每天几个请求扩展到每秒数千个请求。

在本练习中，您使用 Lambda 控制台中的默认 Node.js 函数。

**创建 Lambda 函数**

1. 通过以下网址登录 Lambda 控制台：[https://console.aws.amazon.com/lambda](https://console.aws.amazon.com/lambda)。

1. 选择**创建函数**。

1. 在**基本信息** 下，对于**函数名称**，输入 **my-function**。

1. 对于所有其它选项，请使用默认设置。

1. 选择**创建函数**。

默认的 Lambda 函数代码应类似于以下内容：

```
export const handler = async (event) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify('The API Gateway REST API console is great!'),
    };
    return response;
};
```

对于本练习，您可以修改 Lambda 函数，前提是函数的响应与 [API Gateway 所要求的格式](set-up-lambda-proxy-integrations.md#api-gateway-simple-proxy-for-lambda-output-format)保持一致。

将默认响应正文 (`Hello from Lambda!`) 替换为 `The API Gateway REST API console is great!`。当您调用示例函数时，它会向客户端返回 `200` 响应以及更新的响应。

## 步骤 2：创建 REST API
<a name="getting-started-rest-new-console-create-api"></a>

接下来，您将使用根资源 (`/`) 创建一个 REST API。

**创建 REST API**

1. 通过以下网址登录到 Amazon API Gateway 控制台：[https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)。

1. 请执行以下操作之一：
   + 要创建第一个 API，对于 **REST API**，请选择**构建**。
   + 如果您之前已经创建了 API，请选择**创建 API**，然后为 **REST API** 选择**构建**。

1.  对于 **API 名称**，请输入 **my-rest-api**。

1. （可选）对于**描述**，输入描述。

1. 将 **API 端点类型**设置保留为**区域**。

1. 为 **IP 地址类型**选择 **IPv4**。

1. 选择**创建 API**。

## 步骤 3：创建 Lambda 代理集成
<a name="getting-started-rest-new-console-create-integration"></a>

接下来，您将在根资源 (`/`) 上为您的 REST API 创建 API 方法，并使用代理集成将方法与您的 Lambda 函数集成。在 Lambda 代理集成中，API Gateway 将来自客户端的传入请求直接传递给 Lambda 函数。

**创建 Lambda 代理集成**

1. 选择 `/` 资源，然后选择**创建方法**。

1. 对于**方法类型**中，选择 `ANY`。

1. 对于**集成类型**，选择 **Lambda**。

1. 打开 **Lambda 代理集成**。

1. 对于 **Lambda 函数**，输入 **my-function**，然后选择您的 Lambda 函数。

1. 选择**创建方法**。

## 步骤 4：部署您的 API
<a name="getting-started-rest-new-console-deploy"></a>

接下来，您将创建 API 部署并将其与阶段关联。

**部署 API**

1. 选择**部署 API**。

1. 对于**阶段**，选择**新建阶段**。

1. 对于**阶段名称**，输入 **Prod**。

1. （可选）对于**描述**，输入描述。

1. 选择**部署**。

现在，客户端可以调用您的 API。要在部署 API 之前对其进行测试，您可以选择 **ANY** 方法，导航到**测试**选项卡，然后选择**测试**。

## 步骤 5：调用您的 API
<a name="getting-started-rest-new-console-invoke-api"></a>

**调用 API**

1. 从主导航窗格中选择**阶段**。

1. 在**阶段详细信息**下，选择复制图标以复制您 API 的调用 URL。  
![\[创建 REST API 后，控制台会显示 API 的调用 URL。\]](http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/images/getting-started-rest-invoke-url.png)

1. 在 Web 浏览器中输入调用 URL。

   完整的 URL 应类似于 `https://abcd123.execute-api.us-east-2.amazonaws.com/Prod`。

   您的浏览器向 API 发送 `GET` 请求。

1. 验证 API 的响应。您应该会在浏览器中看到文本 `"The API Gateway REST API console is great!"`。

## （可选）第 6 步：清除
<a name="getting-started-cleanup-rest"></a>

为避免对您的 AWS 账户产生不必要的成本，请删除您在本练习中创建的资源。以下步骤将删除您的 REST API、Lambda 函数和相关资源。

**删除 REST API**

1. 在**资源**窗格中，选择 **API 操作**，然后选择**删除 API**。

1. 在**删除 API** 对话框中，输入**确认**，然后选择**删除**。

**删除 Lambda 函数**

1. 通过以下网址登录 Lambda 控制台：[https://console.aws.amazon.com/lambda](https://console.aws.amazon.com/lambda)。

1. 在**函数**页面上，选择您的函数。依次选择**操作**和**删除**。

1. 在**删除 1 函数**对话框中，输入 **delete**，然后选择**删除**。

**删除 Lambda 函数的日志组**

1. 在 Amazon CloudWatch 控制台中，打开[日志组](https://console.aws.amazon.com/cloudwatch/home#logs:)页面。

1. 在**日志组**页面上，选择函数的日志组 (`/aws/lambda/my-function`)。然后，对于**操作**，选择**删除日志组**。

1. 在 **Delete log group(s)**（删除日志组）对话框中，选择 **Delete**（删除）。

**删除 Lambda 函数的执行角色**

1. 打开 IAM 控制台的[角色页面](https://console.aws.amazon.com/iam/home?#/roles)。

1. （可选）在**角色**页面的搜索框中，输入 **my-function**。

1. 选择函数的角色（例如，`my-function-31exxmpl`），然后选择**删除**。

1. 在**删除 `my-function-31exxmpl`?** 对话框中，输入角色的名称，然后选择**删除**。

**提示**  
您可以使用 AWS CloudFormation 或 AWS Serverless Application Model (AWS SAM) 自动创建和清理 AWS 资源。有关示例 CloudFormation 模板，请参阅 **awsdocs** GitHub 存储库中的 [API Gateway 示例模板](https://github.com/awsdocs/amazon-api-gateway-developer-guide/tree/main/cloudformation-templates)。