Żądania do interfejsu API

Po skonfigurowaniu w projekcie zadeklarowania zależności dla Biblioteka klienta interfejsów API Google do języka Java. Aby przesłać żądanie, wykonaj te czynności. 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 instancji. 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 tutaj: Biblioteka Google Auth Library w języku Java.

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 konstruktora klasy usługi ma 3 parametry:

Wywołuj również w swojej aplikacji metodę setApplicationName() konstruktora imię i nazwisko. Powoduje to ustawienie nagłówka UserAgent z nazwą aplikacji i jest przydatny .

Kod wygląda tak:

HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
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ądzane przez usługę. Klasa jest zdefiniowana jako wewnętrzna klasa klasy usługi. Możesz uzyskać do nich dostęp za pomocą metod z klasy usługi.

Na przykład możesz znaleźć wymiar „Projekty”, zasób CloudResourceManagera zajęcia:

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 zasób klasa zawierająca „create”, „get” i „delete” metody zawierają „Utwórz”, „Pobierz” i „Usuń” klas żądań.

W przypadku Cloud Resource Manager obiekt możesz utworzyć poprzez wywołuje metodę projects.get:

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

Krok 5. Wykonaj żądanie

Obiekt żądania zawiera metodę execute(), która uruchamia żądanie. Ta rozmowa wykonuje żądanie HTTP do usługi Google i przeprowadza deserializację pliku JSON dla klasy modelu. Na przykład metoda execute() klasy Get obiekt żądania zwraca obiekt projektu:

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

Podsumowanie

Wykonując poniższe czynności, możesz wysyłać żądania za pomocą biblioteki klienta interfejsów API Google do Java. Oto fragment kodu, który łączy wszystkie kroki za pomocą komponentu Usługa menedżera.

package com.example;

import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
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 = GoogleNetHttpTransport.newTrustedTransport();
    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());
  }
}