設定專案以宣告 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 個參數:
com.google.api.client.http.HttpTransport。new com.google.api.client.http.javanet.NetHttpTransport()建立執行個體。com.google.api.client.json.JsonFactory。GsonFactory.getDefaultInstance()建立執行個體。com.google.api.client.http.HttpRequestInitializer。new HttpCredentialsAdapter(credentials)會提供該例項。
此外,請使用應用程式名稱呼叫建構工具的 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());
}
}