API-Anfragen

Nachdem Sie Ihr Projekt eingerichtet haben, um die Abhängigkeiten für die Google APIs-Clientbibliothek für Java zu deklarieren, führen Sie die folgenden Schritte aus, um eine Anfrage zu stellen. In den Code-Snippets auf dieser Seite wird Version 3 der Cloud Resource Manager API verwendet.

Schritt 1: Authentifizierung

Instanziieren Sie eine com.google.auth.oauth2.GoogleCredentials-Instanz. Google Cloud-Nutzer können GoogleCredentials.getApplicationDefault() verwenden, um die Standardanmeldedaten für Anwendungen abzurufen.

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

Weitere Informationen zur Authentifizierung finden Sie unter Google Auth Library Java.

Schritt 2: Dienstklasse instanziieren

Ein Google-Dienst hat eine oder mehrere Versionen. Eine Dienstklasse stellt eine Version eines Dienstes dar und ist eine untergeordnete Klasse von AbstractGoogleJsonClient. Beispiel: com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.

Die Builder-Klasse der Dienstklasse hat drei Parameter:

Rufen Sie auch die Methode setApplicationName() des Builders mit dem Namen Ihrer Anwendung auf. Dadurch wird der UserAgent-Header mit dem Anwendungsnamen festgelegt. Das ist hilfreich für die Fehlerbehebung mit Logs.

Der Code sieht so aus:

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

Schritt 3: Ressourcenobjekt erstellen

Eine Ressourcenklasse stellt einen Typ der Ressource dar, die von einem Dienst verwaltet wird. Die Klasse ist als innere Klasse der Dienstklasse definiert. Sie können über die Methoden in der Dienstklasse darauf zugreifen.

So können Sie beispielsweise die „Projects“-Ressource der CloudResourceManager-Klasse abrufen:

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

...

Projects projects = cloudResourceManager.projects();

Schritt 4: Request-Objekt erstellen

Die Vorgänge für das Ressourcenobjekt werden als Anfrageklassen dargestellt. Die verfügbaren Vorgänge hängen von der Ressourcenklasse ab. Eine Ressourcenklasse, die die Methoden „create“, „get“ und „delete“ bereitstellt, enthält beispielsweise die Anfrageklassen „Create“, „Get“ und „Delete“.

Im Beispiel für Cloud Resource Manager können Sie das Get-Anfrageobjekt erstellen, indem Sie die Methode projects.get aufrufen:

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

Schritt 5: Anfrage ausführen

Ein Anfrageobjekt hat die Methode execute(), mit der die Anfrage ausgeführt wird. Bei diesem Aufruf wird eine HTTP-Anfrage an den Google-Dienst gesendet und die JSON-Antwort in eine Modellklasse deserialisiert. Die Methode execute() des Get-Anfrageobjekts gibt beispielsweise ein Project-Objekt zurück:

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

Zusammenfassung

Mit diesen Schritten können Sie Anfragen mit der Google APIs-Clientbibliothek für Java stellen. Hier ist das Code-Snippet, in dem alle Schritte mit dem Resource Manager-Dienst kombiniert werden.

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