Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用由 API Gateway 为 REST API 生成的 Android 开发工具包

在本部分中,我们会介绍由 API Gateway 为 REST API 生成的 Android 开发工具包的使用步骤。您必须先完成 使用 API Gateway 控制台为 API 生成开发工具包 中的步骤,然后才能继续进行操作。

注意

生成的开发工具包与 Android 4.4 及更早版本不兼容。有关更多信息,请参阅 Amazon API Gateway 重要提示

安装和使用由 API Gateway 生成的 Android 开发工具包

  1. 提取您之前下载的 API Gateway 生成的 .zip 文件中的内容。

  2. 下载并安装 Apache Maven(最好是版本 3.x)。

  3. 下载并安装 JDK(最好是版本 1.7 或更高版本)。

  4. 设置 JAVA_HOME 环境变量。

  5. 运行 mvn install 命令,将编译的构件文件安装到您的本地 Maven 存储库中。这将创建包含编译的开发工具包库的 target 文件夹。

  6. target 文件夹中的开发工具包文件(其名称源自您在生成开发工具包时指定的 Artifact IdArtifact 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,请通过 API Gateway 生成的软件开发工具包使用 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 生成的开发工具包设置 API 键,请使用与以下示例类似的代码。

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