Solicitudes a la API

Una vez que configures tu proyecto para declarar las dependencias de tu biblioteca cliente de las APIs de Google para Java, sigue estos pasos para realizar una solicitud. Los fragmentos de esta página usan la v3 de la API de Cloud Resource Manager.

Paso 1: Autenticación

Crea una instancia de la instancia com.google.auth.oauth2.GoogleCredentials. Los usuarios de Google Cloud pueden usar GoogleCredentials.getApplicationDefault() para obtener las credenciales predeterminadas de la aplicación.

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

Para obtener más información sobre la autenticación, consulta la Biblioteca de Google Auth para Java.

Paso 2: Crea una instancia de Service Class

Un servicio de Google tiene una o más versiones. Una clase de servicio representa una versión de un servicio y es una clase secundaria de AbstractGoogleJsonClient. Por ejemplo com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.

La clase del compilador de la clase de servicio toma 3 parámetros:

También llama al método setApplicationName() del compilador con el nombre de tu aplicación. Esto establece el encabezado de UserAgent con el nombre de la aplicación y es útil para solucionar problemas con los registros.

El código se ve así:

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();

Paso 3: Crea un objeto de recurso

Una clase de recurso representa un tipo de el recurso que administra un servicio. La clase se define como una clase interna de la clase de servicio. Puedes acceder a ellas con los métodos de la clase de servicio.

Por ejemplo, puedes obtener el recurso “Proyectos” de la clase CloudResourceManager:

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

...

Projects projects = cloudResourceManager.projects();

Paso 4: Crea un objeto de solicitud

Las operaciones en el objeto del recurso se representan como clases de solicitud. Las operaciones disponibles dependen de la clase de recurso. Por ejemplo, una clase de recurso que proporciona los métodos "create", "get" y "delete" contiene las clases de solicitud "Create", "Get" y "Delete", respectivamente.

En el ejemplo de Cloud Resource Manager, puedes llamar al método projects.get para crear el objeto de solicitud Get:

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

Paso 5: Ejecuta la solicitud

Un objeto de solicitud tiene el método execute() que ejecuta la solicitud. Esta llamada ejecuta una solicitud HTTP al servicio de Google y deserializa la respuesta JSON a una clase de modelo. Por ejemplo, el método execute() del objeto Get request muestra un objeto Project:

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

Resumen

Con estos pasos, puedes realizar solicitudes mediante la biblioteca cliente de las APIs de Google para Java. Este es el fragmento de código que combina todos los pasos usados con el servicio 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());
  }
}