Este tópico descreve como usar os SDKs da Alibaba Cloud para Java em um Ambiente de Desenvolvimento Integrado (IDE) no Windows. O exemplo utiliza o IntelliJ IDEA.
Pré-requisitos
Java Development Kit (JDK) instalado. Para mais informações, consulte Instalar o JDK no Windows.
IntelliJ IDEA instalado. Caso contrário, consulte Configurar um ambiente de desenvolvimento Java no Windows.
Usar SDKs
Usar um projeto de amostra fornecido no OpenAPI Explorer
Acesse a página do OpenAPI Explorer e selecione um produto e uma API. Por exemplo, para chamar a API
DescribeInstanceTypeFamiliesdo ECS, insiraDescribeInstanceTypeFamiliesna caixa de pesquisa e clique em no resultado para acessar a página do OpenAPI Explorer.Na aba Parameters da coluna central, especifique os parâmetros conforme suas necessidades de negócio. Durante a configuração, leia as informações na aba Document da coluna mais à direita. Certifique-se de compreender as notas de uso da operação e a descrição de cada parâmetro. Preste atenção às informações relacionadas ao faturamento. Neste exemplo, a operação DescribeInstanceTypeFamilies aceita dois parâmetros de solicitação. Especifique um valor como cn-hangzhou para o parâmetro RegionId. O parâmetro Generation é opcional; defina-o como ecs-5 para indicar a família de instâncias da série V. Consulte os valores válidos dos parâmetros na aba Document.
-
Na aba SDK Sample Code da coluna mais à direita, selecione uma linguagem de programação e clique em Download Project para baixar o projeto completo do SDK para o seu computador. Em seguida, descompacte o pacote.
NotaO projeto completo contém as informações do SDK e a demonstração para chamar a operação de API.
Abra o IntelliJ IDEA, clique em File > Open, selecione a pasta do projeto descompactada e aguarde a instalação automática das dependências pelo Maven.
-
Antes de chamar esta operação, obtenha um par de AccessKey como credencial de acesso. Recomendamos o uso do par de AccessKey de um usuário do Resource Access Management (RAM). Para mais informações, consulte a seção Criar um par de AccessKey para um usuário RAM no tópico "Criar um par de AccessKey".
ImportanteApós obter o par de AccessKey de um usuário RAM, configure-o nas variáveis de ambiente. Para mais informações, consulte Configurar variáveis de ambiente no Linux, macOS e Windows.
-
Execute o código de demonstração do SDK.
Na árvore de diretórios à esquerda, clique duas vezes em Sample para abri-lo. Clique em no ícone Run no canto superior direito do editor para executar o código.
// This file is auto-generated, don't edit it. Thanks. package com.aliyun.sample; import com.aliyun.tea.*; public class Sample { /** * Initialize the account client with an AccessKey pair. * @return Client * @throws Exception */ public static com.aliyun.ecs20140526.Client createClient() throws Exception { // Leaking the project code may cause the AccessKey to be leaked and threaten the security of all resources under your account. The following code is for reference only. // We recommend that you use a more secure method, such as STS. For more authentication methods, see https://www.alibabacloud.com/help/document_detail/378657.html. com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set in your runtime environment. .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set in your runtime environment. .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // For the endpoint, see https://api.aliyun.com/product/Ecs config.endpoint = "ecs.cn-beijing.aliyuncs.com"; return new com.aliyun.ecs20140526.Client(config); } } Visualize o resultado. Clique em qualquer lugar na janela Run na parte inferior do console e pressione
Ctrl+Fpara pesquisar porstatusCode. Se"statusCode":200for exibido, a chamada foi bem-sucedida.
Instalar um SDK em um projeto existente
-
Obtenha o SDK.
Acesse o SDK Center e selecione o SDK do produto de nuvem desejado. Este exemplo usa o ECS. Em SDK Version, selecione V2.0. Em Language, selecione Java. Para installation method, este exemplo utiliza Apache Maven.
Este SDK requer Java 8 ou posterior. No arquivo pom.xml do seu projeto, adicione a configuração de dependência onde
groupIdécom.aliyun,artifactIdéecs20140526eversioné5.1.2. -
Importe o SDK.
Abra seu projeto Maven no IntelliJ IDEA. No arquivo pom.xml, crie uma nova tag <dependencies></dependencies> e copie a dependência do Apache Maven da etapa anterior para dentro desta tag.
<dependencies> <!--ECS V2.0 SDK --> <dependency> <groupId>com.aliyun</groupId> <artifactId>ecs20140526</artifactId> <version>5.1.2</version> </dependency> </dependencies> Clique em com o botão direito no nome do projeto e escolha Maven > Reload project para baixar a dependência do Maven.
-
Crie uma classe Java.
No diretório src/main/java do projeto, clique em com o botão direito na pasta java e escolha New > Java Class. Neste exemplo, a classe Java chama-se Sample.
-
Inicialize o cliente do serviço de nuvem.
ImportanteUse um par de AccessKey para concluir a verificação de identidade ao inicializar o cliente. Portanto, obtenha um par de AccessKey antecipadamente. Para mais informações sobre como obter um par de AccessKey, consulte Criar um AccessKey.
Após obter o par de AccessKey de um usuário RAM, configure-o nas variáveis de ambiente. Para mais informações, consulte Configurar variáveis de ambiente no Linux, macOS e Windows.
Para mais informações sobre como configurar o endpoint, consulte Endpoints.
import com.aliyun.ecs20140526.Client; import com.aliyun.teaopenapi.models.Config; public class Sample { public static void main(String[] args) throws Exception { Config config = new Config() .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; Client client = new Client(config); } } -
Chame a operação de API.
Antes de chamar uma API, compreenda seus detalhes. Para mais informações, consulte a documentação da API.
Na dependência Maven de um serviço de nuvem, o SDK fornece uma classe de solicitação e uma classe de resposta para cada operação de API. A classe de solicitação define os parâmetros e tipos de valor, enquanto a classe de resposta define os parâmetros de retorno. Isso evita erros de ortografia ao chamar a operação.
Por exemplo, para a operação describeInstanceTypeFamilies, a classe de solicitação é DescribeInstanceTypeFamiliesRequest e a classe de resposta é DescribeInstanceTypeFamiliesResponse.
NotaRegra de nomenclatura para classes de solicitação: Nome da API + Request
Regra de nomenclatura para classes de resposta: Nome da API + Response
import com.aliyun.ecs20140526.Client; import com.aliyun.ecs20140526.models.DescribeInstanceTypeFamiliesRequest; import com.aliyun.ecs20140526.models.DescribeInstanceTypeFamiliesResponse; import com.aliyun.teaopenapi.models.Config; public class Sample { public static void main(String[] args) throws Exception { Config config = new Config() .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; Client client = new Client(config); DescribeInstanceTypeFamiliesRequest describeInstanceTypeFamiliesRequest = new DescribeInstanceTypeFamiliesRequest(); describeInstanceTypeFamiliesRequest.setRegionId("cn-hangzhou"); DescribeInstanceTypeFamiliesResponse describeInstanceTypeFamiliesResponse = client.describeInstanceTypeFamilies(describeInstanceTypeFamiliesRequest); } } -
Trate exceções. Os SDKs da Alibaba Cloud tratam exceções de maneira unificada.
TeaException: esse tipo de exceção resulta de erros de negócio. Três parâmetros estão disponíveis para tratar essa exceção:
code: o código de erro retornado quando a exceção ocorre.
message: a mensagem de erro retornada quando a exceção ocorre. A mensagem contém o ID da solicitação de API que gerou a exceção.
data: as informações detalhadas de erro retornadas pelo servidor quando uma exceção ocorre.
import com.aliyun.ecs20140526.Client; import com.aliyun.ecs20140526.models.DescribeInstanceTypeFamiliesRequest; import com.aliyun.ecs20140526.models.DescribeInstanceTypeFamiliesResponse; import com.aliyun.tea.TeaException; import com.aliyun.teaopenapi.models.Config; public class Sample { public static void main(String[] args) { try { Config config = new Config() .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; Client client = new Client(config); DescribeInstanceTypeFamiliesRequest describeInstanceTypeFamiliesRequest = new DescribeInstanceTypeFamiliesRequest(); describeInstanceTypeFamiliesRequest.setRegionId("cn-hangzhou"); DescribeInstanceTypeFamiliesResponse describeInstanceTypeFamiliesResponse = client.describeInstanceTypeFamilies(describeInstanceTypeFamiliesRequest); } catch (TeaException teaException) { // This is for demonstration only. Handle exceptions with care in your projects and do not ignore them. // Print the error code. System.out.println(teaException.getCode()); // Print the error message, which includes the RequestId. System.out.println(teaException.getMessage()); // Print the detailed error information returned by the server. System.out.println(teaException.getData()); } catch (Exception e) { TeaException error = new TeaException(e.getMessage(), e); // This is for demonstration only. Handle exceptions with care in your projects and do not ignore them. // Error message. System.out.println(error.getMessage()); // Diagnostic address. System.out.println(error.getData().get("Recommend")); com.aliyun.teautil.Common.assertAsString(error.message); } } }
Perguntas frequentes
-
O que fazer se a mensagem de erro "java: error: release version X not supported" for retornada ao executar o código?
Pressione
Ctrl+Alt+Shift+Spara abrir a caixa de diálogo Project Structure. Clique em Modules no painel de navegação à esquerda. Selecione um valor na lista suspensa Language level com base na versão do JDK utilizada. Por exemplo, se você usa JDK 8, selecione 8-Lambdas, type annotations etc. Clique em Apply e depois em OK. -
O que fazer se a mensagem de erro "java: Compilationfailed: internal java compiler error" for retornada ao executar o código?
Na barra de menus do IntelliJ IDEA, clique em File > Settings > Build, Execution, Deployment > Compiler > Java Compiler. Defina Project bytecode version e Target bytecode version para a versão correspondente ao seu JDK. Por exemplo, se você usa JDK 8, selecione 8 para ambas as opções. Clique em Apply e depois em OK.