开发者社区 问答 正文

SDK使用方法和具体代码编写步骤是什么


新版SDK的文件名通常以 aliyun-java-sdk 开头,后面跟上产品名称如ECS,组成如 aliyun-java-sdk-ecs 的包名。其中有一个核心包 aliyun-java-sdk-core,其中封装了所有产品的SDK都会用到的一些类,如IClientProfile类、IAcsClient类、异常类等。产品相关的类均以产品为单位打包成不同名称的jar包。
下面以 ECS Java SDK 获得镜像的方法 DescribeImages 为例,介绍 SDK 使用的完整流程,其中 IClientProfile 和 IAcsClient 两个类包含在 aliyun-java-sdk-core 包中,其他的类均包含在 aliyun-java-sdk-ecs 包中。


  1. 生成 IClientProfile 的对象 profile,该对象存放 Access Key ID 和 Access Key Secret 和默认的地域信息:IClientProfile profile  = DefaultProfile.getProfile("cn-hangzhou", ak,  aks);

从 IClientProfile 类中再生成 IAcsClient 的对象 client,后续获得 response 都需要从 IClientProfile 中获得。 IAcsClient client = new DefaultAcsClient(profile);
创建一个对应方法的 Request,类的命名规则一般为 API 的方法名加上 “Request”,如获得镜像列表的 API 方法名为 DescribeImages,那么对应的请求类名就是 DescribeImagesRequest,直接使用构造函数生成一个默认的类 describe:
  1. DescribeImagesRequest describe = new DescribeImagesRequest();

请求类生成好之后需要通过 Request 类的 setXxx 方法设置必要的信息,即 API 参数中必须要提供的信息,DescribeImages 的 API 方法必须要提供的参数为 RegionId,该值可以省略,因为 IClientProfile 中已经提供了地域信息,同样的也可以通过 setXxx 方法设置其他可选的参数,如这里设置要查询的镜像为自定义镜像,则设置 ImageOwnerAlias 的值为 “self”(self即表示查询自定义镜像),即:
  1. describe.setImageOwnerAlias("self");

参数设置完毕后就可以通过 IAcsClient 对象来获得对应 Request 的响应了:
  1. DescribeImagesResponse response    = client.getAcsResponse(describe);

接着可以调用 response 中对应的 getXxx 方法获得返回的参数值了,如获得某个镜像的名字。根据 API 方法的不同,返回的信息中可能会包含多层的信息,如获得镜像列表这个方法,返回的信息中镜像是以一个集合来表示的,集合中存放了每个镜像的惊喜,对于 Java SDK 而言,那么存放镜像信息的就是一个列表,需要先通过 getImages() 获得 Image 对象的集合,然后再通过遍历等方法取得其中某个镜像的信息,之后调用 getXxx 方法获得具体的信息:for(Image image:response.getImages())
  1.      {
  2.          System.out.println(image.getImageId());
  3.          System.out.println(image.getImageName());
  4.      }

至此,一个完整的调用就完成了。
说明:
PHP 的 SDK 和 Java 的类似,可以归纳为:
  1. 创建 profile
  2. 创建 client
  3. 创建 Request
  4. 设置 Request的参数
  5. 使用 client对应的方法传入 request,获得 response
  6. 在 response 中获得返回的参数值

Python 的 SDK 省略了 profile 创建这一步,直接创建 client,然后执行后面的步骤即可。

展开
收起
boxti 2017-10-19 15:13:56 2101 分享
分享
版权
举报
0 条回答
写回答
取消 提交回答
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等