使用由 API Gateway 為 REST API 產生的 Android 軟體開發套件 - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用由 API Gateway 為 REST API 產生的 Android 軟體開發套件

在本節中,我們將概述使用 API Gateway 為 REST API 所產生之 Android 軟體開發套件的步驟。您必須已完成RESTAPIs在API閘SDKs道中產生中的步驟,才能繼續往下進行。

注意

所產生的開發套件與 Android 4.4 (含) 以前的版本不相容。如需詳細資訊,請參閱 Amazon API Gateway 重要備註

安裝及使用 API Gateway 所產生的 Android 軟體開發套件
  1. 將您稍早下載之 API Gateway 所產生的 .zip 檔案內容解壓縮。

  2. 下載並安裝 Apache Maven (最好是 3.x 版)。

  3. 下載並安裝 JDK 8

  4. 設定 JAVA_HOME 環境變數。

  5. 執行 mvn install 命令,將已編譯的成品檔案安裝到您的本機 Maven 儲存庫。這會建立 target 資料夾,其中包含已編譯的開發套件程式庫。

  6. target 資料夾中的開發套件檔案 (其名稱衍生自您在產生開發套件時所指定的 Artifact Id (成品 ID) 與 Artifact Version (成品版本),例如 simple-calcsdk-1.0.0.jar),連同 target/lib 資料夾中的所有其他程式庫,一起複製到您專案的 lib 資料夾中。

    如果您使用 Android Studio,請在您的用戶端應用程式模組下建立一個 libs 資料夾,然後將必要的 .jar 檔案複製到此資料夾中。確認模組之 Gradle 檔案中的相依性區段包含以下內容。

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

    確定未宣告重複的 .jar 檔案。

  7. 使用 ApiClientFactory 類別來初始化 API Gateway 產生的軟體開發套件。例如:

    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 的呼叫,請使用該ApiClientFactory類別透過使用 API Gateway 產生的 SDK 傳遞一組 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 所產生的軟體開發套件來設定 API 金鑰,請使用類似如下的程式碼。

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