专栏名称: 亚马逊云科技
亚马逊AWS的公众号,第一时间获取关于AWS国内外服务的资讯。AWS中国(北京)区域由光环新网运营。
目录
相关文章推荐
知识星球精选  ·  ERP+财务+IT,高质量知识圈子来了 ·  昨天  
阿枫科技  ·  如何精准找到你感兴趣的小电影? ·  2 天前  
十点人物志  ·  100万人打出9.6,它比《边水往事》后劲更大 ·  1 周前  
十点人物志  ·  100万人打出9.6,它比《边水往事》后劲更大 ·  1 周前  
51好读  ›  专栏  ›  亚马逊云科技

大咖专栏 | API Gateway 的Android SDK

亚马逊云科技  · 公众号  ·  · 2017-07-04 20:07

正文


报名有奖

现在报名并邀请两位朋友参加 AWS 技术峰会2017北京 就能获得价值50美元AWS全球服务抵扣券多邀多得,上不封顶!活动详情请查看微信文末活动说明。


大咖专栏

大咖专栏主要刊登亚马逊AWS诸位大咖亲自撰写的Blog,内容涉猎广泛,话题讨论前沿,且与实战紧密相连。我们非常欢迎小伙伴们在评论区留言,与大咖互动交流!


今天为大家撰文的大咖,是我们的AWS解决方案架构师——薛峰老师。

薛峰

AWS解决方案架构师

薛峰负责AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内和全球的应用和推广,在大规模并发应用架构、移动应用以及无服务器架构等方面有丰富的实践经验。在加入AWS之前曾长期从事互联网应用开发,先后在新浪、唯品会等公司担任架构师、技术总监等职位。对跨平台多终端的互联网应用架构和方案有深入的研究。

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.1

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
}


在接下来的内容里,我们会介绍:


  2.3 部署API并生成SDK

        2.3.1 部署API

        2.3.2 生成SDK

3. Android 开发整合SDK

  3.1 创建一个新的Android项目

  3.2 整合API Gateway生成的Android SDK

  3.3 编写代码用SDK实现调用API

4. 小结


请感兴趣的小伙伴点击“阅读原文

或扫描/长按识别下方的二维码

阅读完整版文章

One More Thing...

微信积分邀请有奖活动正在火热进行中!

邀请三位好友关注AWS官方微信

即可兑换价值50美元AWS全球服务抵扣券一张!


请在AWS微信内回复“邀请码”参加活动!