全新的面向资源的API更容易理解和使用。目前在现有的模型中,它避免了许多超长的请求-响应时间,并提出AWS直接面向对象的观点。相较于每个服务都是单一的级别,资源式API包括多个级别,并且,其中每一个代表一个特定类型的资源服务。每个级别包括与所述资源和与其它类型的相关资源的交互所需要的方法。写入新的API代码通常会更短,更简洁并更容易理解。
下面是老派的方式来检索使用GetGroup功能的AWS身份和访问管理(IAM)组:
AmazonIdentityManagement iam = new AmazonIdentityManagementClient(); iam.setRegion(Region.getRegion(Regions.US_WEST_2));
GetGroupRequest getGroupRequest = new GetGroupRequest("NeedNewKeys"); GetGroupResult getGroupResult = iam.getGroup(getGroupRequest); |
下面是新的方式:
IdentityManagement iam = ServiceBuilder.forService(IdentityManagement.class)
.withRegion(Region.getRegion(Regions.US_WEST_2)) .build();
Group needNewKeys = iam.getGroup("NeedNewKeys"); |
在复杂的操作过程中,旧的和新的API之间的差异变得更加明显。比较老派的代码标识一个过时的访问键(oldKey),这表示IAM的用户处于非活动状态:
UpdateAccessKeyRequest updateAccessKeyRequest = new UpdateAccessKeyRequest() .withAccessKeyId(oldKey) .withUserName(user.getUserName()) .withStatus(StatusType.Inactive); iam.updateAccessKey(updateAccessKeyRequest); |
随着新的,精简的代码的出现,其意图更加明显。有很多设置代码的方式,并且该方法是引用在感兴趣的对象上,而不是在服务上。
新的API预览模式在Amazon Elastic Compute Cloud (EC2), AWS Identity and Access Management (IAM), 和Amazon Glacier中正式启动。Amazon计划引进新的API资源,用于其他服务和其他AWS SDK中。
|