集成SDK
在调用OpenAPI时,建议采用在项目中集成SDK的方式。使用SDK可以简化开发流程,实现功能的快速集成,同时有效降低维护成本。本文将详细介绍如何在项目中安装SDK以及使用SDK开发。
环境要求
JDK版本 >= 1.6。
安装SDK
在使用Java V1.0 SDK时,需要同时安装云产品SDK和核心SDK。
云产品SDK
云产品SDK主要包含了调用OpenAPI所需的请求参数Request对象及返回结果Response对象。以云产品ECS的SDK为例,建议通过Maven依赖的方式进行引入,以下为其Maven依赖信息:
<dependencies>
<!-- ecs V1.0 SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ecs</artifactId>
<version>5.11.7</version>
</dependency>
</dependencies>
V1.0 SDK的命名方式为aliyun-java-sdk-${产品code}
。您也可以通过SDK信息中心来查看具体产品的V1.0 SDK的信息。
核心SDK
核心SDK主要包含在调用OpenAPI时所需的Client对象、签名逻辑以及异常处理等功能。建议通过Maven依赖的方式,依赖信息如下:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.7.3</version>
</dependency>
使用SDK
本文将以调用ECSDescribeInstances接口为例,为您分步介绍如何使用V1.0 SDK。
1. 初始化请求客户端
所有的OpenAPI均通过核心SDK提供的Client发起调用,因此在调用OpenAPI之前,需要先进行客户端初始化。这里以使用AK初始化方式为例,更多客户端初始化方式请参见管理访问凭据。
示例采用读取环境变量的方式获取凭证,运行代码前需配置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
。具体操作,请参见在Linux、macOS和Windows系统配置环境变量。
com.aliyuncs.profile.DefaultProfile profile = com.aliyuncs.profile.DefaultProfile.getProfile(
"<REGION_ID>",
// 从环境变量获取RAM用户的AccessKey ID
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 从环境变量获取RAM用户的AccessKey Secret
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
com.aliyuncs.IAcsClient client = new com.aliyuncs.DefaultAcsClient(profile);
单Client的模式存在线程不安全的问题,而且通过一个profile信息在不同产品之间混用,容易造成的权限管理问题,建议您使用V2.0 SDK开发。
2. 构造OpenAPI请求参数对象
可以使用云产品SDK中提供的Request对象封装请求参数。
OpenAPI请求参数对象的命名方式为:<OpenAPI名称>Request
。
com.aliyuncs.ecs.model.v20140526.DescribeInstancesRequest request = new com.aliyuncs.ecs.model.v20140526.DescribeInstancesRequest();
request.setRegionId("cn-hangzhou");
request.setInstanceIds(new com.google.gson.Gson().toJson(Arrays.asList("i-bp1fq61ktxxxxxxxxxxxx","i-bp1fq62ktxxxxxxxxxxxx")));
3. 发起请求
通过步骤1创建的请求客户端调用getAcsResponse接口发起请求,该接口的参数为步骤2构造的Request对象。调用成功后,将返回Response对象。
OpenAPI返回参数对象的命名方式为:<OpenAPI名称>Response
。
com.aliyuncs.ecs.model.v20140526.DescribeInstancesResponse response = client.getAcsResponse(request);
System.out.println(new com.google.gson.Gson().toJson(response));
4. 异常处理
在调用OpenAPI时如果发生异常,您可以通过捕获ServerException和ClientException来获取错误信息。其中ClientException异常一般是在初始化客户端过程中参数填错,例如AK输入错误;ServerException异常产生的原因有很多种,您可以根据异常中返回的RequestId联系阿里云协助排查问题。
相关文档
关于SDK更多配置,例如代理配置、超时配置等,请参见进阶配置。
如何创建AK,请参见创建AccessKey。