Este tópico descreve como usar os SDKs dos serviços da Alibaba Cloud para chamar operações de API.
SDKs da Alibaba Cloud
A Alibaba Cloud oferece SDKs em diversas linguagens de programação, incluindo Java, C#, Go, Python, TypeScript + Node.js, PHP e C++. É possível chamar operações de API diretamente por meio dos SDKs integrados às suas aplicações. Os SDKs encapsulam informações como lógica de assinatura, mecanismo de timeout e mecanismo de nova tentativa, além de retornarem objetos de resposta estruturados conforme as especificações, o que facilita o trabalho dos desenvolvedores.
Para obter mais informações sobre os SDKs da Alibaba Cloud, consulte SDKs da Alibaba Cloud.
Método de integração
Acesse o OpenAPI Explorer. Passe o ponteiro do mouse sobre
na barra de navegação superior e localize o serviço desejado.Na seção SDK Examples, clique em a linguagem de programação que você utiliza.
Visualize o método de instalação do SDK e o código de exemplo para integrar o SDK.
Comparação entre V2.0 e V1.0
O Alibaba Cloud SDK V2.0 suporta mais linguagens e cenários mais complexos de operações de API do que o Alibaba Cloud SDK V1.0. A versão V2.0 permite chamadas assíncronas e síncronas, além de resolver problemas legados da V1.0. Com recursos mais flexíveis e robustos, recomendamos o uso do Alibaba Cloud SDK V2.0. Para mais detalhes, consulte Alibaba Cloud SDK V1.0 e V2.0.
Para novos projetos, recomendamos o uso da V2.0. Em projetos que já utilizam a V1.0, sugerimos atualizar para a V2.0.
Exemplo de integração
Neste exemplo, o SDK do Elastic Compute Service (ECS) para Java é integrado e utilizado para chamar a operação DescribeInstance.
V2.0
O Alibaba Cloud SDK V2.0 contém as principais informações necessárias para operações de API, como processamento de parâmetros, montagem de requisições e tratamento de respostas. Os desenvolvedores podem chamar operações de API instalando o pacote de dependências do SDK, sem necessidade de depender da biblioteca principal.
Dependência
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>ecs20140526</artifactId>
<version>5.1.0</version>
</dependency>
Código de exemplo
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* Use your AccessKey ID and AccessKey secret to initialize the client.
* @param accessKeyId
* @param accessKeySecret
* @return Client
* @throws Exception
*/
public static com.aliyun.ecs20140526.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// Required. Specify your AccessKey ID.
.setAccessKeyId(accessKeyId)
// Required. Specify your AccessKey secret.
.setAccessKeySecret(accessKeySecret);
// Specify the endpoint.
config.endpoint = "ecs-cn-hangzhou.aliyuncs.com";
return new com.aliyun.ecs20140526.Client(config);
}
public static void main(String[] args_) throws Exception {
java.util.List<String> args = java.util.Arrays.asList(args_);
// Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are configured.
// If the project code is leaked, the AccessKey pair may be disclosed, which compromises the security of resources in your account. The following sample code obtains the AccessKey pair from environment variables. This example is for reference only. We recommend that you use Security Token Service (STS) to initialize SDK clients, which is more secure. For more information about authentication solutions, see the "Manage access credentials" topic for Alibaba Cloud SDK for Java.
com.aliyun.ecs20140526.Client client = Sample.createClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
com.aliyun.ecs20140526.models.RunInstancesRequest runInstancesRequest = new com.aliyun.ecs20140526.models.RunInstancesRequest();
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
try {
// If you copy and run the sample code, write your own code to display the response of the API operation.
client.runInstancesWithOptions(runInstancesRequest, runtime);
} catch (TeaException error) {
// Display the error based on your business requirements.
com.aliyun.teautil.Common.assertAsString(error.message);
} catch (Exception _error) {
TeaException error = new TeaException(_error.getMessage(), _error);
// Display the error based on your business requirements.
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
V1.0
Dependências
É necessário instalar a biblioteca principal do SDK, que inclui requisições HTTP, informações de autenticação, algoritmos de assinatura e tratamento de exceções.
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.1</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ecs</artifactId>
<version>5.11.5</version>
</dependency>
Código de exemplo
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import java.util.*;
import com.aliyuncs.ecs.model.v20140526.*;
public class DescribeInstances {
public static void main(String[] args) {
// Create and initialize a DefaultAcsClient instance.
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
// Create an API request and configure the required parameters.
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.setRegionId("cn-hangzhou");
request.setInstanceNetworkType("vpc");
request.setInstanceChargeType("PostPaid");
request.setInternetChargeType("PayByTraffic");
request.setPageSize(10);
try {
// Initiate the request and handle the response or exception.
DescribeInstancesResponse response = client.getAcsResponse(request);
for (DescribeInstancesResponse.Instance instance:response.getInstances())
{
System.out.println(instance.getImageId());
System.out.println(instance.getInstanceId());
System.out.println(instance.getPublicIpAddress());
}
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}