API 要求

設定專案以宣告 Google API Java 專用用戶端程式庫的依附元件後,請按照下列步驟提出要求。本頁的程式碼片段使用 Cloud Resource Manager API 第 3 版。

步驟 1:驗證

例項化 com.google.auth.oauth2.GoogleCredentials 例項。Google Cloud 使用者可以透過 GoogleCredentials.getApplicationDefault() 取得應用程式預設憑證

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

如要進一步瞭解驗證,請參閱 Google Auth Library Java

步驟 2:例項化服務類別

Google 服務包含一或多個版本。服務類別代表服務版本,是 AbstractGoogleJsonClient 的子類別。例如 com.google.api.services.cloudresourcemanager.v3.CloudResourceManager

服務類別的建構工具類別會採用 3 個參數:

此外,請使用應用程式名稱呼叫建構工具的 setApplicationName() 方法。這會使用應用程式名稱設定 UserAgent 標頭,有助於透過記錄進行疑難排解。

程式碼如下所示:

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

步驟 3:建立資源物件

資源類別代表服務管理的資源類型。這個類別定義為服務類別的內部類別。您可以使用服務類別中的方法存取這些屬性。

舉例來說,您可以取得 CloudResourceManager 類別的「Projects」資源:

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

...

Projects projects = cloudResourceManager.projects();

步驟 4:建立要求物件

針對資源物件執行的作業會以要求類別表示。可用的作業會因資源類別而異。舉例來說,提供「create」、「get」和「delete」方法的資源類別,分別包含「Create」、「Get」和「Delete」要求類別。

以 Cloud Resource Manager 為例,您可以呼叫 projects.get 方法,建立 Get 要求物件:

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

步驟 5:執行要求

要求物件具有執行要求的 execute() 方法。這項呼叫會對 Google 服務執行 HTTP 要求,並將 JSON 回應還原序列化為模型類別。舉例來說,Get 要求物件的 execute() 方法會傳回 Project 物件:

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

摘要

完成這些步驟後,您就可以使用 Google API Java 專用用戶端程式庫發出要求。以下程式碼片段會使用 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());
  }
}