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 un'istanza
com.google.auth.oauth2.GoogleCredentials. Gli utenti di Google Cloud possono utilizzare
GoogleCredentials.getApplicationDefault()
per ottenere le
Credenziali predefinite dell'applicazione.
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
Per saperne di più sull'autenticazione, consulta Google Auth Library Java.
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 di builder della classe di servizio accetta tre parametri:
com.google.api.client.http.HttpTransport.new com.google.api.client.http.javanet.NetHttpTransport()crea un'istanza.com.google.api.client.json.JsonFactory.GsonFactory.getDefaultInstance()crea un'istanza.com.google.api.client.http.HttpRequestInitializer.new HttpCredentialsAdapter(credentials)fornisce un'istanza.
Chiama anche il metodo setApplicationName() del builder con il nome dell'applicazione. In questo modo, l'intestazione UserAgent viene impostata con il nome dell'applicazione ed è utile
per la risoluzione dei problemi con i log.
Il codice ha il seguente aspetto:
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();
Passaggio 3: crea un oggetto risorsa
Una classe di risorse rappresenta un tipo di risorsa gestita da un servizio. La classe è definita come classe interna della classe di servizio. Puoi accedervi utilizzando i metodi nella 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 sull'oggetto risorsa sono rappresentate come classi di richiesta. Le operazioni disponibili dipendono dalla classe di risorse. Ad esempio, una classe di risorse che fornisce i metodi "create", "get" e "delete" contiene rispettivamente le classi di richieste "Create", "Get" e "Delete".
Per l'esempio di Cloud Resource Manager, puoi creare l'oggetto richiesta Get 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
in una classe modello. Ad esempio, il metodo execute() dell'oggetto richiesta Get 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.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());
}
}