如何将模型与我在 API Gateway 中的 API 集成?

上次更新时间:2018 年 11 月 8 日

我想将一个模型与我在 Amazon API Gateway 中的 API 集成。该如何操作?

简短描述

您可以在 API Gateway 中为您的 API 创建一个 模型来定义负载的数据格式。API Gateway 模型必须使用 JSON schema 草稿 4

请按照以下步骤将模型与您的 API 关联:

1.    编写模型 schema 并为您的 API 创建模型。

2.    将此模型关联到该 API 方法。

3.    测试模型。

4.    (可选)为模型创建映射模板。

5.    部署和测试 API。

解决方法

编写模型 schema 并为您的 API 创建模型

编写您希望与您的 API 关联的模型 schema。以下示例模型要求 API 用户必须在请求正文中传递其用户 ID名称。此模型还要求用户 ID名称必须是字符串值,并且提供的任何年龄值必须是一个等于或大于 18 整数值。

注意:此示例使用的是 application/json

{
  "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "User",
    "type": "object",
    "properties": {
        "UserID": {
            "type": "string"
        },
        "Name": {
            "type": "string"
        },
        "Age": {
            "description": "Age in years",
            "type": "integer",
            "minimum": 18
        }
    },
    "required": ["UserID", "Name"]
}

编写模型 schema 后,使用 API Gateway 控制台创建模型

将此模型关联到该 API 方法

1.    在 API Gateway 控制台中打开您的 API。

2.    从导航窗格中,选择资源

3.    选择要与模型关联的 API 方法。

4.    在方法执行视图中,选择方法请求

5.    对于请求验证器,选择验证正文。然后,选择复选图标以保存您的选择。

6.    展开请求正文。然后选择添加模型

7.    对于内容类型,输入模型的内容类型(例如,“application/json”)。

8.    对于模型名称,选择您创建的模型。

9.    选择复选图标以保存您的选择。

测试模型

1.    在您的 API 的资源 列表中,选择与您的模型关联的 API 方法。

2.    在方法执行视图中,选择测试

3.    对于请求正文,输入与您创建的 schema 模型匹配的请求正文。

注意:要测试 application/json 示例模型,您可以使用以下示例请求正文:

{ "UserID": "abc123", "Name":"Ana","Age":21}

4.    选择测试

5.    如果示例请求正文与模型 schema 匹配,您将收到成功响应。

(可选)为模型创建映射模板

如需创建一个映射模版以修改发送到 API 的集成后端的请求,请执行以下步骤:

1.    在您的 API 的资源 列表中,选择与您的模型关联的 API 方法。

2.    在方法执行视图中,选择集成请求

3.    展开映射模板

4.    在请求正文传递中选择当没有定义模板时(推荐)

5.    选择添加映射模板

6.    对于内容类型,输入模型的内容类型(例如,“application/json”)。然后,选择复选图标以保存您的选择。

7.    对于生成模板,选择您创建的模型。

注意:application/json 示例模型显示为:

#set($inputRoot = $input.path('$')) { "UserID" : "$inputRoot.UserID", "Name" : "$inputRoot.Name", "Age" : $inputRoot.Age }

8.    根据您希望传递到 API 的集成后端的值修改模板。

9.    选择保存

部署和测试 API

1.    从导航窗格中,选择资源

2.    选择操作。然后选择部署 API

3.    对于部署阶段,选择一个现有阶段或选择[新阶段]以创建阶段。如果您创建了一个新阶段,您还必须输入阶段名称

4.    选择部署

要测试您的 API,请将测试请求发送到使用与您的模型关联的方法和内容类型的 API。您可以使用 API 开发工具或 curl 命令发送测试请求。此 curl 命令将会发送示例 application/json 模型的测试请求:

curl -X POST <YOUR-API-URL> -H 'Content-Type: application/json' -d '{ "UserID": "abc123", "Name":"Ana","Age":21}'

使用正确的方法和内容类型发送测试请求后,可以验证您是否收到成功的“200 OK”响应。

另外,您还可以发送使用无效响应正文的测试请求。以下请求正文对于 application/json 模型无效,因为它不包含所需的属性用户 ID

{ "Name":"Ana", "Age":21}

使用无效响应正文发送测试请求后,请验证您是否收到类似于“请求正文无效”的 400 错误消息。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?