API リクエスト

Google APIs Client Library for Java の依存関係を宣言するようにプロジェクトを設定したら、次の手順に沿ってリクエストを作成します。このページのスニペットでは、Cloud Resource Manager API の v3 を使用しています。

ステップ 1: 認証

com.google.auth.oauth2.GoogleCredentials インスタンスをインスタンス化します。Google Cloud ユーザーは、GoogleCredentials.getApplicationDefault() を使用してアプリケーションのデフォルト認証情報を取得できます。

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

認証の詳細については、Google Auth Library Java をご覧ください。

ステップ 2: Service クラスをインスタンス化する

Google サービスには 1 つ以上のバージョンがあります。サービスクラスはサービスのバージョンを表し、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: リクエスト オブジェクトを作成する

リソース オブジェクトに対するオペレーションは、リクエスト クラスとして表されます。使用可能なオペレーションは、リソースクラスによって異なります。たとえば、「作成」、「取得」、「削除」メソッドを提供するリソース クラスには、それぞれ「作成」、「取得」、「削除」リクエスト クラスが含まれます。

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 APIs Client Library for 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());
  }
}