1. 背景介绍
Amazon API Gateway 是一种完全托管的服务,可以帮助开发者轻松创建、发布、维护、监控和保护任意规模的 API。作为无服务器架构中的一个重要组成部分,已经有越来越多的用户熟悉并使用 Amazon API Gateway。为了让大家更轻松地调用生成的 API,Amazon API Gateway 还提供了生成客户端 SDK 的功能,目前支持的客户端语言包括 Java、JavaScript、iOS(Object-C)、iOS(Swift) 和 Android。
今天,我们通过一个具体的例子演示一下 Android SDK,帮助大家快速上手,更方便轻松地使用 Amazon API Gateway。
2. 配置部署 API
我们参考官方文档中的宠物店这个例子,配置一套代理 HTTP 接口的 API。我们简化接口定义,以便突出 Android SDK 的使用,只做 2 个接口:
/pets
方法: GET
参数:
type String 宠物类型
page int 页码
/pets/{id}
方法: GET
参数: 无
2.1 创建 Model
我们的 API 代理的后端接口还是这个宠物店的接口
http://petstore-demo-endpoint.execute-api.com/petstore/pets
我们先根据其返回结果创建相关的结果数据模型。
我们以 Oregon 区域为例,打开 Amazon API Gateway 管理控制台
https://us-west-2.console.aws.amazon.com/apigateway/home?region=us-west-2
点击 Create API
保持 New API 选中不变。
API name 填写 petstore。
Description 填写 A demo API for Android SDK.。点击 Create API 按钮。
这时左侧导航链接会显示成 APIs > petstore> Resources。点击导航链接中的 APIs > petstore> Models。这里已经显示有 2 个默认创建出来的 Model。我们点击 Create 按钮再来创建一个。
2.1.1 Pets: 宠物列表的 Model
Model name* 填写 Pets
Content type* 填写 application/json
Model description 填写 A list of pets。
我们使用https://jsonschema.net/ 这个在线工具来生成 Model schema。
Root ID 填写 pets。
我们直接访问 http://petstore-demo-endpoint.execute-api.com/petstore/pets
[
{
"id": 1,
"type": "dog",
"price": 249.99
},
{
"id": 2,
"type": "cat",
"price": 124.99
},
{
"id": 3,
"type": "fish",
"price": 0.99
}
]
帖到 JSON 栏中,其它选项保持不变,点击 Generate Schema 按钮,结果生成在右侧的窗格中。
复制出来,粘贴到 Model schema 格中即可。点击 Creat Model 按钮保存完成。
2.1.2 Pet: 宠物详情接口的 Model
点击 Create 按钮再来创建一个。
Model name* 填写 Pet。
Content type* 填写 application/json。
Model description 填写 A pet。
我们再使用https://jsonschema.net/ 这个在线工具来生成 Model schema。
Root ID 填写 pet。
我们直接访问http://petstore-demo-endpoint.execute-api.com/petstore/pets/1
把得到的返回结果
{
"id": 1,
"type":
"dog",
"price":249.99
}
帖到 JSON 栏中,其它选项保持不变,点击 Generate Schema 按钮,结果生成在右侧的窗格中。复制出来,粘贴到 Model schema 格中。点击 Creat Model 按钮保存完成。
2.2 配置 API
2.2.1 宠物列表接口
左侧导航链接点击 APIs > petstore> Resources。保持最顶层的 / 为选中状态时,点击 Actions 下拉菜单,选择 Create Resource。
Resource Name* 填写 pets
Resource Path 自动填写了 pets。然后点击 Create Resource 按钮。
这时刚刚创建的/pets 应该是选中状态,再点击 Actions 下拉菜单,选择 Create Method,在当时出现的方法菜单里选择 GET,然后点后面的对号符确定。
然后在/pets – GET – Setup 页,Integration type 选 HTTP。
Endpoint URL 填写 http://petstore-demo-endpoint.execute-api.com/petstore/pets。
其它保持默认,点击 Save 按钮。
创建成功后,点击 Method Request 链接,在 Method Request 配置页,点击 URL Query String Parameters 展开之。
点击 Add query string 增加一个参数 type ,点击 Add query string 增加第二个参数 page。其它项保持默认。
点击 Method Execution 链接返回,点击 Method Response 链接。在 Method Response 配置页,点击 200 左边的三角形,展开响应详情。在 Response Body for 200 下点击铅笔图标编辑之,把 Model 菜单下选择 Pets,然后点击对勾图标保存。
点击 Method Execution 链接返回,点击 TEST 链接,我们来测试一下。Query Strings 下面 type 输入 dog,page 输入 1,然后点击 Test 按钮。右侧会显示出形如如下结果,表示这个 API 已经配置成功。
Request: /pets?type=dog&page=1
Status: 200
Latency: 271 ms
Response Body
[
{
"id": 1,
"type": "dog",
"price": 249.99
},
{
"id": 2,
"type": "dog",
"price": 124.99
},
{
"id": 3,
"type": "dog",
"price": 0.99
}
]
2.2.2 宠物详情接口
左侧导航链接点击 APIs > petstore> Resources。保持最顶层的 /pets 为选中状态时,点击 Actions 下拉菜单,选择 Create Resource。
Resource Name* 填写{petId}
Resource Path 自动填写了 –petid-,把它删掉,改成{petId}。然后点击 Create Resource 按钮。
这时刚刚创建的/{petId}应该是选中状态,再点击 Actions 下拉菜单,选择 Create Method,在当时出现的方法菜单里选择 GET,然后点后面的对号符确定。
然后在/pets/{petId} – GET – Setup 页,Integration type 选 HTTP。
Endpoint URL 填写 http://petstore-demo-endpoint.execute-api.com/petstore/pets/{petId}。
其它保持默认,点击 Save 按钮。
创建成功后,点击 Method Request 链接,在 Method Request 配置页,点击 Request Paths 展开之,确认这里已经有一条 petId 了。如果没有,请返回 Create Resource 步骤检查。
点击 Method Execution 链接返回,点击 Method Response 链接。在 Method Response 配置页,点击 200 左边的三角形,展开响应详情。在 Response Body for 200 下点击铅笔图标编辑之,把 Model 菜单下选择 Pet,然后点击对勾图标保存。
点击 Method Execution 链接返回,点击 TEST 链接,我们来测试一下。Query Strings 下面{petId}输入 1,然后点击 Test 按钮。右侧会显示出如下结果,表示这个 API 已经配置成功。
Request: /pets/1
Status: 200
Latency: 357 ms
Response
Body
{
"id": 1,
"type": "dog",
"price": 249.99
`}
评论