API-Anfragen

Nachdem Sie Ihr Projekt eingerichtet haben, um die Abhängigkeiten für Ihre Google API-Clientbibliothek für Java zu deklarieren, führen Sie die folgenden Schritte aus, um eine Anfrage zu senden. Die Snippets auf dieser Seite verwenden Version 3 der Cloud Resource Manager API.

Schritt 1: Authentifizierung

Instanziieren Sie die Instanz com.google.auth.oauth2.GoogleCredentials. Google Cloud-Nutzer können mit GoogleCredentials.getApplicationDefault() die Standardanmeldedaten für Anwendungen abrufen.

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

Weitere Informationen zur Authentifizierung finden Sie unter Google-Authentifizierungsbibliothek Java.

Schritt 2: Dienstklasse instanziieren

Für einen Google-Dienst gibt es 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 verwendet drei Parameter:

Rufen Sie auch die Methode setApplicationName() des Builders mit Ihrem Anwendungsnamen auf. Dadurch wird der UserAgent-Header auf den Anwendungsnamen festgelegt. Dies ist bei der Fehlerbehebung mit Logs hilfreich.

Der Code sieht so aus:

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

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 mithilfe der Methoden in der Dienstklasse darauf zugreifen.

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

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

...

Projects projects = cloudResourceManager.projects();

Schritt 4: Anfrageobjekt erstellen

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

Im Beispiel von 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 verwendet die Methode execute(), mit der die Anfrage ausgeführt wird. Dieser Aufruf führt eine HTTP-Anfrage an den Google-Dienst aus und deserialisiert die JSON-Antwort auf eine Modellklasse. Die Methode execute() des Get-Anfrageobjekts gibt beispielsweise ein Projektobjekt zurück:

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

Zusammenfassung

Mit diesen Schritten können Sie Anfragen über die Google APIs-Clientbibliothek für Java senden. Hier sehen Sie das Code-Snippet, mit dem alle Schritte kombiniert werden, wenn Sie den Resource Manager-Dienst verwenden.

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