Solicitações de API

Depois de configurar o projeto para declarar as dependências da biblioteca de cliente das APIs do Google para Java, siga estas etapas para fazer uma solicitação. Os snippets nesta página usam a v3 da API Cloud Resource Manager.

Etapa 1: autenticação

Instancie a instância com.google.auth.oauth2.GoogleCredentials. Para usuários do Google Cloud, é possível usar GoogleCredentials.getApplicationDefault() para receber o Application Default Credentials.

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

Para mais informações sobre autenticação, consulte Biblioteca do Google Auth para Java.

Etapa 2: instanciar a classe de serviço

Um serviço do Google tem uma ou mais versões. Uma classe de serviço representa a versão de um serviço e é filha de AbstractGoogleJsonClient. Por exemplo: com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.

A classe builder da classe de serviço usa três parâmetros:

Chame também o método setApplicationName() do builder com o nome do aplicativo. Isso define o cabeçalho UserAgent com o nome do aplicativo e é útil para solução de problemas com registros.

O código é semelhante a este:

NetHttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
GsonFactory jsonFactory = GsonFactory.getDefaultInstance();
CloudResourceManager.Builder resourceManagerBuilder =
    new CloudResourceManager.Builder(
        transport, jsonFactory, new HttpCredentialsAdapter(credentials))
        .setApplicationName("Example Java App");
CloudResourceManager cloudResourceManager = resourceManagerBuilder.build();

Etapa 3: criar um objeto de recurso

Uma classe de recurso representa um tipo de recurso gerenciado por um serviço. A classe é definida como uma classe interna da classe de serviço. Você pode acessá-las usando os métodos na classe de serviço.

Por exemplo, é possível receber o recurso "Projects" da classe CloudResourceManager:

import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;

...

Projects projects = cloudResourceManager.projects();

Etapa 4: criar um objeto de solicitação

As operações no objeto de recurso são representadas como classes de solicitação. As operações disponíveis dependem da classe do recurso. Por exemplo, uma classe de recurso que fornece os métodos "create", "get" e "delete" contém as classes de solicitação "Create", "Get" e "Delete", respectivamente.

Para o exemplo do Cloud Resource Manager, é possível criar o objeto de solicitação Get chamando o método projects.get:

Get get = projects.get("projects/your-project-id");

Etapa 5: executar a solicitação

Um objeto de solicitação tem o método execute() que executa a solicitação. Essa chamada executa uma solicitação HTTP para o serviço do Google e desserializa a resposta JSON para uma classe de modelo. Por exemplo, o método execute() do objeto de solicitação Get retorna um objeto Project:

Project project = get.execute();
System.out.println("Project name: " + project.getDisplayName());

Resumo

Com estas etapas, você pode fazer solicitações usando a biblioteca de cliente de APIs do Google para Java. Este é o snippet de código que combina todas as etapas usando o serviço Resource Manager.

package com.example;

import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager;
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects.Get;
import com.google.api.services.cloudresourcemanager.v3.model.Project;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;

public class ResourceManagerSample {
  public static void main(String[] arguments) throws Exception {
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

    NetHttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
    GsonFactory jsonFactory = GsonFactory.getDefaultInstance();
    CloudResourceManager.Builder resourceManagerBuilder =
        new CloudResourceManager.Builder(
            transport, jsonFactory, new HttpCredentialsAdapter(credentials))
            .setApplicationName("Example Java App");
    CloudResourceManager cloudResourceManager = resourceManagerBuilder.build();

    Projects projects = cloudResourceManager.projects();

    Get get = projects.get("projects/your-project-id");

    Project project = get.execute();
    System.out.println("Project display name: " + project.getDisplayName());
  }
}