Żądania do interfejsu API

Po skonfigurowaniu w projekcie deklarowania zależności dla 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 wersji 3 interfejsu Cloud Resource Manager API.

Krok 1. Uwierzytelnianie

Utwórz instancję com.google.auth.oauth2.GoogleCredentials. W przypadku użytkowników Google Cloud możesz użyć GoogleCredentials.getApplicationDefault(), aby uzyskać domyślne dane logowania aplikacji.

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

Więcej informacji na temat uwierzytelniania znajdziesz na stronie Google Auth Library Library.

Krok 2. Utwórz instancję klasy usługi

Usługa Google ma co najmniej 1 wersję. Klasa usługi reprezentuje wersję usługi i jest klasą podrzędną AbstractGoogleJsonClient. Przykład: com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.

Klasa montera klasy usługi przyjmuje 3 parametry:

Wywołaj też metodę setApplicationName() w konstruktorze, podając nazwę swojej aplikacji. Spowoduje to ustawienie nagłówka UserAgent na nazwę aplikacji i przydaje się do rozwiązywania problemów z logami.

Kod wygląda tak:

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

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 żądania. Dostępne operacje zależą od klasy zasobu. Na przykład klasa zasobu z metodami „create”, „get” i „delete” zawiera odpowiednio klasy żądania „Create”, „Get” i „Delete”.

Na przykład w usłudze 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 na klasę 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 interfejsów API Google dla języka Java. Oto fragment kodu, który łączy wszystkie kroki za pomocą usługi Menedżer zasobów.

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