プロジェクトをセットアップして、Java 用 Google API クライアント ライブラリの依存関係を宣言したら、次の手順でリクエストを行います。このページのスニペットでは、Cloud Resource Manager API の v3 を使用しています。
ステップ 1: 認証
com.google.auth.oauth2.GoogleCredentials
インスタンスをインスタンス化します。Google Cloud ユーザーの場合は、GoogleCredentials.getApplicationDefault()
を使用してアプリケーションのデフォルト認証情報を取得できます。
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
認証の詳細については、Google 認証ライブラリ Java をご覧ください。
ステップ 2: サービスクラスをインスタンス化する
Google サービスには 1 つ以上のバージョンがあります。サービスクラスはサービスのバージョンを表し、AbstractGoogleJsonClient の子クラスです。例: com.google.api.services.cloudresourcemanager.v3.CloudResourceManager
サービスクラスのビルダークラスは、次の 3 つのパラメータを取ります。
com.google.api.client.http.HttpTransport
。GoogleNetHttpTransport.newTrustedTransport()
がそのインスタンスを作成します。com.google.api.client.json.JsonFactory
。GsonFactory.getDefaultInstance()
がそのインスタンスを作成します。com.google.api.client.http.HttpRequestInitializer
。new HttpCredentialsAdapter(credentials)
がそのインスタンスを与えます。
また、アプリケーション名を指定してビルダーの setApplicationName()
メソッドを呼び出します。これにより、UserAgent ヘッダーがアプリケーション名に設定されます。これは、ログのトラブルシューティングに役立ちます。
コードは次のようになります。
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();
ステップ 3: リソース オブジェクトを作成する
リソースクラスは、サービスによって管理されるリソースのタイプを表します。クラスは、サービスクラスの内部クラスとして定義されます。サービスクラスのメソッドを使用してアクセスできます。
たとえば、CloudResourceManager クラスの「Projects」リソースを取得できます。
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;
...
Projects projects = cloudResourceManager.projects();
ステップ 4: Request オブジェクトを作成する
リソース オブジェクトに対するオペレーションは、リクエスト クラスとして表されます。使用可能なオペレーションは、リソースクラスによって異なります。たとえば、「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 = get.execute();
System.out.println("Project name: " + project.getDisplayName());
まとめ
この手順では、Java 用の Google API クライアント ライブラリを使用してリクエストを送信できます。次のコード スニペットは、Resource Manager サービスを使用してすべてのステップを組み合わせたものです。
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());
}
}