本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用由 API Gateway 為 REST API 產生的 Android 軟體開發套件
在本節中,我們將概述使用 API Gateway 為 REST API 所產生之 Android 軟體開發套件的步驟。您必須已完成RESTAPIs在API閘SDKs道中產生中的步驟,才能繼續往下進行。
注意
所產生的開發套件與 Android 4.4 (含) 以前的版本不相容。如需詳細資訊,請參閱 Amazon API Gateway 重要備註。
安裝及使用 API Gateway 所產生的 Android 軟體開發套件
-
將您稍早下載之 API Gateway 所產生的 .zip 檔案內容解壓縮。
-
下載並安裝 Apache Maven
(最好是 3.x 版)。 -
下載並安裝 JDK 8
。 -
設定
JAVA_HOME
環境變數。 -
執行 mvn install 命令,將已編譯的成品檔案安裝到您的本機 Maven 儲存庫。這會建立
target
資料夾,其中包含已編譯的開發套件程式庫。 -
將
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 檔案。
-
使用
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;
-
若要使用 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);
-
若要使用 API Gateway 所產生的軟體開發套件來設定 API 金鑰,請使用類似如下的程式碼。
ApiClientFactory factory = new ApiClientFactory() .apiKey("YOUR_API_KEY");