AWS API Gateway 的Android SDKWord文档下载推荐.docx

上传人:b****2 文档编号:3106595 上传时间:2023-05-01 格式:DOCX 页数:16 大小:243.84KB
下载 相关 举报
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第1页
第1页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第2页
第2页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第3页
第3页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第4页
第4页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第5页
第5页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第6页
第6页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第7页
第7页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第8页
第8页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第9页
第9页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第10页
第10页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第11页
第11页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第12页
第12页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第13页
第13页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第14页
第14页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第15页
第15页 / 共16页
AWS API Gateway 的Android SDKWord文档下载推荐.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

AWS API Gateway 的Android SDKWord文档下载推荐.docx

《AWS API Gateway 的Android SDKWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《AWS API Gateway 的Android SDKWord文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。

AWS API Gateway 的Android SDKWord文档下载推荐.docx

APIname填写petstore。

Description填写AdemoAPIforAndroidSDK.。

点击CreateAPI按钮。

这时左侧导航链接会显示成APIs>

petstore>

Resources。

点击导航链接中的APIs>

Models。

这里已经显示有2个默认创建出来的Model。

我们点击Create按钮再来创建一个。

2.1.1Pets:

宠物列表的Model

Modelname*填写Pets

Contenttype*填写application/json

Modeldescription填写Alistofpets。

我们使用schema。

RootID填写pets。

我们直接访问http:

把得到的返回结果

[

{

"

id"

:

1,

type"

dog"

price"

249.99

},

2,

cat"

124.99

3,

fish"

0.99

}

]

帖到JSON栏中,其它选项保持不变,点击GenerateSchema按钮,结果生成在右侧的窗格中。

复制出来,粘贴到Modelschema格中即可。

点击CreatModel按钮保存完成。

2.1.2Pet:

宠物详情接口的Model

点击Create按钮再来创建一个。

Modelname*填写Pet。

Contenttype*填写application/json。

Modeldescription填写Apet。

我们再使用schema。

RootID填写pet。

{

}

复制出来,粘贴到Modelschema格中。

2.2配置API

2.2.1宠物列表接口

左侧导航链接点击APIs>

petstore>

保持最顶层的/为选中状态时,点击Actions下拉菜单,选择CreateResource。

ResourceName*填写pets

ResourcePath自动填写了pets。

然后点击CreateResource按钮。

这时刚刚创建的/pets应该是选中状态,再点击Actions下拉菜单,选择CreateMethod,在当时出现的方法菜单里选择GET,然后点后面的对号符确定。

然后在/pets-GET-Setup页,Integrationtype选HTTP。

EndpointURL填写http:

其它保持默认,点击Save按钮。

创建成功后,点击MethodRequest链接,在MethodRequest配置页,点击URLQueryStringParameters展开之。

点击Addquerystring增加一个参数type,点击Addquerystring增加第二个参数page。

其它项保持默认。

点击MethodExecution链接返回,点击MethodResponse链接。

在MethodResponse配置页,点击200左边的三角形,展开响应详情。

在ResponseBodyfor200下点击铅笔图标编辑之,把Model菜单下选择Pets,然后点击对勾图标保存。

点击MethodExecution链接返回,点击TEST链接,我们来测试一下。

QueryStrings下面type输入dog,page输入1,然后点击Test按钮。

右侧会显示出形如如下结果,表示这个API已经配置成功。

Request:

 

/pets?

type=dog&

page=1

Status:

200

Latency:

271ms

ResponseBody

2.2.1宠物详情接口

保持最顶层的/pets为选中状态时,点击Actions下拉菜单,选择CreateResource。

ResourceName*填写{petId}

ResourcePath自动填写了–petid-,把它删掉,改成{petId}。

这时刚刚创建的/{petId}应该是选中状态,再点击Actions下拉菜单,选择CreateMethod,在当时出现的方法菜单里选择GET,然后点后面的对号符确定。

然后在/pets/{petId}-GET-Setup页,Integrationtype选HTTP。

创建成功后,点击MethodRequest链接,在MethodRequest配置页,点击RequestPaths展开之,确认这里已经有一条petId了。

如果没有,请返回CreateResource步骤检查。

在ResponseBodyfor200下点击铅笔图标编辑之,把Model菜单下选择Pet,然后点击对勾图标保存。

QueryStrings下面{petId}输入1,然后点击Test按钮。

右侧会显示出如下结果,表示这个API已经配置成功。

/pets/1

357ms

2.3部署API并生成SDK

2.3.1部署API

Resources,Action菜单点击DeployAPI,在弹出层里

Deploymentstage菜单下拉选[NewStage]。

Stagename*填写test。

Stagedescription填写teststage。

Deploymentdescription填写firstdeploy。

点击Deploy按钮。

部署成功后会跳转到testStageEditor。

可以看到

InvokeURL:

形如https:

//abcde12345.execute-api.us-west-

我们把这个URL后面接上前述配置过的API路径,再来测试一下。

因为我们配置的没有AUTH难,所以可以简单的使用游览器直接访问,比如

可以得到宠物列表的JSON结果就表示部署成功了。

同理可以再测试一下

2.3.1生成SDK

在testStageEditor页点击SDKGeneration选项卡,Platform*选Android。

下面展开的内容,都和我们即将开发的AndroidApp包名有关,我们先定好包名为com.example.petstore。

相应的这里几项这样填写:

GroupID填写com.example

Invokerpackage填写完整包名com.example.petstore

ArtifactID填写petstore

Artifactversion填写自己编排的版本号,比如1.0.0

然后点击GenerateSDK按钮,弹出下载文件对话框,保存到本机即可。

这是一个ZIP压缩包,解压可以得到以下目录和文件。

│build.gradle

│LICENSE.txt

│NOTICE.txt

│pom.xml

│README.md

└─src

└─main

└─java

└─com

└─example

└─petstore

│PetstoreClient.java

└─model

Pet.java

Pets.java

PetsItem.java

先放在这备用。

下面我们用AndroidStudio开始做App项目。

3.Android开发整合SDK

3.1创建一个新的Android项目

我们打开AndroidStudio,新建一个项目,Applicationname填写Petstore,Companydomain填写,从而Packagename成为com.example.petstore,和我们前面生成SDK时使用的包名保持一致。

然后一路点击Next,使用默认配置(EmptyActivity,ActivityName是MainActivity,LayoutName是activity_main)创建一个项目。

3.2整合APIGateway生成的AndroidSDK

使用APIGateway生成的SDK其实有官方文档:

但是我们今天用更简便的方法,直接用build.gradle管理包,不需要按官方文档那样安装Maven再编译等。

项目创建起来后,我们在Project面板启用Project视图。

打开app/build.gradle,在dependencies段添加以下几行,其实就是AWSSDK的核心包,APIGateway的包以及用于解析JSON的gson包。

compile'

com.amazonaws:

aws-android-sdk-core:

2.4.+'

compile"

aws-android-sdk-apigateway-core:

2.4+"

com.google.code.gson:

gson:

2.8.0'

然后按提示点击Syncnow同步项目。

这时会下载上述3个依赖库,视网络状态可能需要一些时间。

我们可以不用等待,继续后面的配置。

添加访问互联网权限,打开/app/src/main/AndroidManifest.xml,在<

application节点前面加上一行:

<

uses-permissionandroid:

name="

android.permission.INTERNET"

/>

我们打开之前下载的SDK压缩包解压的目录src/main/java/com/example/petstore,把下面的文件和目录

复制到Android项目中com.example.petstore下面。

完成的样子如下图所示:

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

我们使用Cognito进行验证,所以需要先创建一个Cognito的Federatedidentitypool,有关方法请参阅相关文档,这里不再赘述。

在AndroidStudio里打开MainActivity.java。

先定义2个常量

publicstaticfinalStringTAG="

petstore_MainActivity"

;

publicstaticfinalStringCOGNITO_POOL_ID="

us-west-2:

xxxxxxxx"

然后我们定义一个testPet()方法。

privatevoidtestPet(){

//使用Cognito进行验证

AWSCredentialsProvidercredentialsProvider=newCognitoCachingCredentialsProvider(

getApplicationContext(),//当前活动的Context

COGNITO_POOL_ID,//Cognitoidentitypoolid

//TODO把这个区域设置成你的Cognito所在的区域

Regions.US_WEST_2

);

//使用ApiClientFactory工厂方法来生成SDK的客户端实例。

ApiClientFactoryfactory=newApiClientFactory().credentialsProvider(credentialsProvider);

PetstoreClientclient=factory.build(PetstoreClient.class);

//对API接口的调用已经封装成相应的方法,比如/pets接口的GET方法,对应petsGet()方法。

//具体的方法说明可以点击petsGet方法名上的链接,跳转到PetstoreClient.java中查看源码。

Petspets=client.petsGet("

"

1"

//列表中的每个项目可以用get()方法获取

PetsItemitem=pets.get(0);

//我们这里只使用Log.d()方法打印出日志信息。

Log.d(TAG,"

oneiteminpetlist:

id="

+item.getId()+"

type="

+item.getType()+"

price="

+item.getPrice());

//调用详情接口

StringpetId="

2"

Petpet=client.petsPetIdGet(petId);

finalStringmessage="

pet:

+pet.getId()+"

+pet.getType()+"

+pet.getPrice();

//用弹出层演示在界面展示数据

runOnUiThread(newRunnable(){

@Override

publicvoidrun(){

newAlertDialog.Builder(self)

.setTitle("

Pet"

.setMessage(message)

.setPositiveButton(android.R.string.ok,null)

.create()

.show();

});

最后在onCreate()方法里加上如下代码,新开线程做HTTP请求,就可以了。

newThread(){

super.run();

testPet();

}.start();

到这里例子已经完成,我们运行一个App,顺利地话可以看到如下的日志输出,我们已经可以顺利得到API接口的响应结果了。

这是在模拟器上运行的弹出层效果的截图。

例子的源码在下面git库的Petstore目录,供大家参考。

使用时请记得把MainActivity.java里的COGNITO_POOL_ID换成你自己真实的值,以及newCognitoCachingCredentialsProvider时要使用你的COGNITO_POOL_ID所在的region值。

4.小结

AmazonAPIGateway生成的客户端SDK主要功能包括以下几点:

∙根据我们为各个接口定义的Model批量创建好相应的Model类。

∙通过AWS核心SDK实现HTTP请求的验证。

∙封装HTTP请求和响应。

∙把响应结果通过Gson库转换成方便AndroidJava使用的Model类。

这个简单的例子也体现出生成的客户端SDK便利了客户端应用程序的开发。

作者介绍:

薛峰,亚马逊AWS解决方案架构师,AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内和全球的应用和推广,在大规模并发应用架构、移动应用以及无服务器架构等方面有丰富的实践经验。

在加入AWS之前曾长期从事互联网应用开发,先后在新浪、唯品会等公司担任架构师、技术总监等职位。

对跨平台多终端的互联网应用架构和方案有深入的研究。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2