Une fois que vous avez configuré votre projet pour déclarer les dépendances de votre bibliothèque cliente des API Google pour Java, suivez ces étapes pour envoyer une requête. Les extraits de code de cette page utilisent la version 3 de l'API Cloud Resource Manager.
Étape 1 : Authentification
Instanciez une instance com.google.auth.oauth2.GoogleCredentials. Pour les utilisateurs Google Cloud, vous pouvez utiliser GoogleCredentials.getApplicationDefault() pour obtenir les identifiants par défaut de l'application.
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
Pour en savoir plus sur l'authentification, consultez Google Auth Library Java.
Étape 2 : Instanciez la classe de service
Un service Google comporte une ou plusieurs versions. Une classe de service représente une version d'un service et est une classe enfant de AbstractGoogleJsonClient.
Par exemple, com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.
La classe de création de la classe de service prend trois paramètres :
com.google.api.client.http.HttpTransport.new com.google.api.client.http.javanet.NetHttpTransport()crée une instance de celui-ci.com.google.api.client.json.JsonFactory.GsonFactory.getDefaultInstance()crée une instance de celui-ci.com.google.api.client.http.HttpRequestInitializer.new HttpCredentialsAdapter(credentials)donne une instance de celui-ci.
Appelez également la méthode setApplicationName() du compilateur avec le nom de votre application. Cela définit l'en-tête UserAgent avec le nom de l'application, ce qui est utile pour résoudre les problèmes avec les journaux.
Le code se présente comme suit :
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();
Étape 3 : Créez un objet Resource
Une classe de ressources représente un type de ressource gérée par un service. La classe est définie comme une classe interne de la classe de service. Vous pouvez y accéder à l'aide des méthodes de la classe de service.
Par exemple, vous pouvez obtenir la ressource "Projects" de la classe CloudResourceManager :
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;
...
Projects projects = cloudResourceManager.projects();
Étape 4 : Créer un objet de requête
Les opérations sur l'objet de ressource sont représentées sous forme de classes de requête. Les opérations disponibles dépendent de la classe de ressources. Par exemple, une classe de ressources qui fournit des méthodes "create", "get" et "delete" contient respectivement les classes de requête "Create", "Get" et "Delete".
Pour l'exemple de Cloud Resource Manager, vous pouvez créer l'objet de requête Get en appelant la méthode projects.get :
Get get = projects.get("projects/your-project-id");
Étape 5 : Exécuter la requête
Un objet de requête possède la méthode execute() qui exécute la requête. Cet appel exécute une requête HTTP au service Google et désérialise la réponse JSON dans une classe de modèle. Par exemple, la méthode execute() de l'objet de requête Get renvoie un objet Project :
Project project = get.execute();
System.out.println("Project name: " + project.getDisplayName());
Résumé
Ces étapes vous permettent d'envoyer des requêtes à l'aide de la bibliothèque cliente des API Google pour Java. Voici l'extrait de code qui combine toutes les étapes à l'aide du service 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());
}
}