Amazon API Gateway
開発者ガイド

REST API に対して API Gateway で生成された Android SDK の使用

このセクションでは、REST API に対して API Gateway で生成された Android SDK を使用するステップを説明します。先に進む前に、「API Gateway コンソールを使用して API 用の SDKを生成する」のステップを済ませている必要があります。

注記

生成された SDK は、Android 4.4 以前とは互換性がありません。詳細については、「Amazon API Gateway 既知の問題」を参照してください。

API Gateway で生成された Android SDK をインストールして使用するには

  1. ダウンロード済みの API Gateway で生成された .zip ファイルのコンテンツを抽出します。

  2. Apache Maven をダウンロードしてインストールします (バージョン 3.x を推奨)。

  3. JDK をダウンロードしてインストールします (バージョン 1.7 以降を推奨)。

  4. JAVA_HOME 環境変数を設定します。

  5. mvn install コマンドを実行し、コンパイルされたアーティファクトファイルをローカルの Maven リポジトリにインストールします。これにより、コンパイル済み SDK ライブラリを含む target フォルダーが作成されます。

  6. SDK ファイルを (その名前は、[] など、SDK の生成時に指定した Artifact Id および Artifact Versionsimple-calcsdk-1.0.0.jar から派生しています) [target] フォルダから、[target/lib] フォルダの他のすべてのライブラリとともに、プロジェクトの [lib] フォルダにコピーします。

    Andriod Studio を使用している場合は、クライアントアプリケーションモジュールで libs フォルダを作成し、このフォルダ内に必要な .jar ファイルをコピーします。モジュールの gradle ファイルの依存関係セクションに、以下が含まれていることを確認します。

    compile fileTree(include: ['*.jar'], dir: 'libs') compile fileTree(include: ['*.jar'], dir: 'app/libs')

    重複した .jar ファイルが宣言されていないことを確認します。

  7. ApiClientFactory クラスを使用して API Gateway で生成された SDK を初期化します。例:

    ApiClientFactory factory = new ApiClientFactory(); // Create an instance of your SDK. Here, 'SimpleCalcClient.java' is the compiled java class for the SDK generated by API Gateway. final SimpleCalcClient client = factory.build(SimpleCalcClient.class); // Invoke a method: // For the 'GET /?a=1&b=2&op=+' method exposed by the API, you can invoke it by calling the following SDK method: Result output = client.rootGet("1", "2", "+"); // where the Result class of the SDK corresponds to the Result model of the API. // // For the 'GET /{a}/{b}/{op}' method exposed by the API, you can call the following SDK method to invoke the request, Result output = client.aBOpGet(a, b, c); // where a, b, c can be "1", "2", "add", respectively. // For the following API method: // POST / // host: ... // Content-Type: application/json // // { "a": 1, "b": 2, "op": "+" } // you can call invoke it by calling the rootPost method of the SDK as follows: Input body = new Input(); input.a=1; input.b=2; input.op="+"; Result output = client.rootPost(body); // where the Input class of the SDK corresponds to the Input model of the API. // Parse the result: // If the 'Result' object is { "a": 1, "b": 2, "op": "add", "c":3"}, you retrieve the result 'c') as String result=output.c;
  8. Amazon Cognito 認証情報プロバイダを使用して API への呼び出しを認証するには、次の例で示すように API Gateway で生成された SDK を使用して ApiClientFactory クラスで AWS 認証情報のセットを渡します。

    // Use CognitoCachingCredentialsProvider to provide AWS credentials // for the ApiClientFactory AWSCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider( context, // activity context "identityPoolId", // Cognito identity pool id Regions.US_EAST_1 // region of Cognito identity pool ); ApiClientFactory factory = new ApiClientFactory() .credentialsProvider(credentialsProvider);
  9. API Gateway で生成された SDK で API キーを設定するには、次のようなコードを使用します。

    ApiClientFactory factory = new ApiClientFactory() .apiKey("YOUR_API_KEY");