Po skonfigurowaniu projektu w celu zadeklarowania zależności biblioteki klienta interfejsów API Google dla języka Java wykonaj te czynności, aby wysłać żądanie. Fragmenty kodu na tej stronie korzystają z interfejsu Cloud Resource Manager API w wersji 3.
Krok 1. Uwierzytelnianie
Utwórz instancję com.google.auth.oauth2.GoogleCredentials. Użytkownicy Google Cloud mogą użyć
GoogleCredentials.getApplicationDefault()
aby uzyskać domyślne dane logowania aplikacji.
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
Więcej informacji o uwierzytelnianiu znajdziesz w artykule Google Auth Library Java.
Krok 2. Utwórz instancję klasy usługi
Usługa Google ma co najmniej jedną wersję. Klasa usługi reprezentuje wersję usługi i jest klasą podrzędną klasy AbstractGoogleJsonClient.
Na przykładcom.google.api.services.cloudresourcemanager.v3.CloudResourceManager.
Klasa narzędzia do tworzenia klasy usługi przyjmuje 3 parametry:
com.google.api.client.http.HttpTransportnew com.google.api.client.http.javanet.NetHttpTransport()tworzy jego instancję.com.google.api.client.json.JsonFactoryGsonFactory.getDefaultInstance()tworzy jego instancję.com.google.api.client.http.HttpRequestInitializer.new HttpCredentialsAdapter(credentials)zwraca jego instancję.
Wywołaj też metodę setApplicationName() konstruktora, podając nazwę aplikacji. Ustawia to nagłówek UserAgent z nazwą aplikacji i jest przydatne podczas rozwiązywania problemów z logami.
Kod wygląda tak:
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();
Krok 3. Utwórz obiekt zasobu
Klasa zasobu reprezentuje typ zasobu zarządzanego przez usługę. Klasa jest zdefiniowana jako klasa wewnętrzna klasy usługi. Możesz uzyskać do nich dostęp za pomocą metod w klasie usługi.
Możesz na przykład pobrać zasób „Projects” klasy CloudResourceManager:
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;
...
Projects projects = cloudResourceManager.projects();
Krok 4. Utwórz obiekt żądania
Operacje na obiekcie zasobu są reprezentowane jako klasy żądań. Dostępne operacje zależą od klasy zasobu. Na przykład klasa zasobu, która udostępnia metody „create”, „get” i „delete”, zawiera odpowiednio klasy żądań „Create”, „Get” i „Delete”.
W przypadku Cloud Resource Manager możesz utworzyć obiekt żądania Get, wywołując metodę projects.get:
Get get = projects.get("projects/your-project-id");
Krok 5. Wykonaj żądanie
Obiekt żądania ma metodę execute(), która uruchamia żądanie. To wywołanie wykonuje żądanie HTTP do usługi Google i deserializuje odpowiedź JSON do klasy modelu. Na przykład metoda execute() obiektu Get
request zwraca obiekt Project:
Project project = get.execute();
System.out.println("Project name: " + project.getDisplayName());
Podsumowanie
Wykonując te czynności, możesz wysyłać żądania za pomocą biblioteki klienta interfejsu API Google dla języka Java. Oto fragment kodu, który łączy wszystkie kroki za pomocą usługi 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());
}
}