Richieste API

Dopo aver configurato il progetto per dichiarare le dipendenze per la libreria client delle API di Google per Java, segui questi passaggi per effettuare una richiesta. Gli snippet in questa pagina utilizzano la versione 3 dell'API Cloud Resource Manager.

Passaggio 1: autenticazione

Crea l'istanza dell'istanza com.google.auth.oauth2.GoogleCredentials. Per gli utenti di Google Cloud, puoi utilizzare GoogleCredentials.getApplicationDefault() per scaricare le Credenziali predefinite dell'applicazione.

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

Per maggiori informazioni sull'autenticazione, consulta Java di Google Auth Library.

Passaggio 2: crea un'istanza della classe di servizio

Un servizio Google ha una o più versioni. Una classe di servizio rappresenta una versione di un servizio ed è una classe secondaria di AbstractGoogleJsonClient. Ad esempio com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.

La classe del builder della classe di servizio accetta tre parametri:

Chiama anche il metodo setApplicationName() del builder con il nome della tua applicazione. Imposta l'intestazione UserAgent con il nome dell'applicazione ed è utile per la risoluzione dei problemi relativi ai log.

Il codice è simile al seguente:

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

Passaggio 3: crea un oggetto risorsa

Una classe di risorsa rappresenta un tipo di risorsa gestita da un servizio. La classe è definita come una classe interna della classe di servizio. Puoi accedervi utilizzando i metodi della classe di servizio.

Ad esempio, puoi ottenere la risorsa "Projects" della classe CloudResourceManager:

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

...

Projects projects = cloudResourceManager.projects();

Passaggio 4: crea un oggetto richiesta

Le operazioni contro l'oggetto risorsa sono rappresentate come classi di richiesta. Le operazioni disponibili dipendono dalla classe di risorsa. Ad esempio, una classe di risorse che fornisce i metodi "create", "get" ed "delete" contengono rispettivamente le classi di richiesta "Create", "Get" e "Delete".

Come esempio di Cloud Resource Manager, puoi creare l'oggetto Ottieni richiesta chiamando il metodo projects.get:

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

Passaggio 5: esegui la richiesta

Un oggetto richiesta ha il metodo execute() che esegue la richiesta. Questa chiamata esegue una richiesta HTTP al servizio Google e deserializza la risposta JSON a una classe del modello. Ad esempio, il metodo execute() dell'oggetto Get request restituisce un oggetto Project:

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

Riepilogo

Con questi passaggi, puoi effettuare richieste utilizzando la libreria client delle API di Google per Java. Ecco lo snippet di codice che combina tutti i passaggi utilizzando il servizio 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());
  }
}