Requêtes API

Une fois que vous avez configuré votre projet pour déclarer les dépendances de la bibliothèque cliente des API Google pour Java, procédez comme suit pour envoyer une requête. Les extraits de cette page utilisent la version 3 de l'API Cloud Resource Manager.

Étape 1: Authentification

Instanciez l'instance com.google.auth.oauth2.GoogleCredentials. Pour les utilisateurs de 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 la page Java de la bibliothèque Google Auth.

Étape 2: Instancier la classe de service

Un service Google possède 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 "Builder" de la classe de service utilise trois paramètres:

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 et est utile pour le dépannage avec les journaux.

Le code se présente comme suit:

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

Étape 3: Créez un objet "Ressource"

Une classe de ressource 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 "Projets" de la classe CloudResourceManager:

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

...

Projects projects = cloudResourceManager.projects();

Étape 4: Créez un objet de requête

Les opérations exécutées sur l'objet ressource sont représentées par des classes de requête. Les opérations disponibles dépendent de la classe de ressource. Par exemple, une classe de ressource qui fournit les méthodes "create", "get" et "delete" contient respectivement les classes de requêtes "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écutez 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 à 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.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());
  }
}