Solicitações de API

Depois de configurar o projeto para declarar as dependências da biblioteca de cliente de 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 com.google.auth.oauth2.GoogleCredentials instância. Para usuários do Google Cloud, use GoogleCredentials.getApplicationDefault() para receber o Application Default Credentials.

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

Para mais informações sobre autenticação, consulte Biblioteca de autenticação do Google 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 uma versão de um serviço e é uma classe 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 solucionar problemas com registros.

O código é semelhante a este:

HttpTransport transport = new NetHttpTransport();
JsonFactory 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. É possível acessá-los usando os métodos na classe de serviço.

Por exemplo, é possível acessar 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 de recurso. Por exemplo, uma classe de recurso que fornece métodos "create", "get" e "delete" contém classes de solicitação "Create", "Get" e "Delete", respectivamente.

No 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 em 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 essas etapas, é possível fazer solicitações usando a biblioteca de cliente das APIs do Google para Java. Confira o snippet de código que combina todas as etapas usando o serviço Resource Manager.

package com.example;

import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
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();

    HttpTransport transport = new NetHttpTransport();
    JsonFactory 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());
  }
}