Uso de un SDK de Android generado por API Gateway para una API REST
En esta sección, se describen los pasos para utilizar un SDK de Android generado por API Gateway para una API REST. Antes de continuar, debe haber completado los pasos de Generación de SDK para las API de REST en API Gateway.
nota
El SDK generado no es compatible con Android 4.4 y versiones anteriores. Para obtener más información, consulte Notas importantes de Amazon API Gateway.
Para instalar y utilizar un SDK de Android generado por API Gateway
-
Extraiga el contenido del archivo .zip generado por API Gateway que ha descargado anteriormente.
-
Descargue e instale Apache Maven
(preferiblemente la versión 3.x). -
Descargar e instalar JDK 8
. -
Establezca la variable de entorno
JAVA_HOME
. -
Ejecute el comando mvn install para instalar los archivos de artefactos compilados en el repositorio de Maven local. Se creará una carpeta
target
con la biblioteca del SDK compilada. -
Copie el archivo de SDK (cuyo nombre se obtiene de los elementos Artifact Id (ID de artefacto) y Artifact Version (Versión de artefacto) que especificó cuando generó el SDK, p. ej.,
simple-calcsdk-1.0.0.jar
) desde la carpetatarget
, junto con todas las demás bibliotecas de la carpetatarget/lib
en la carpetalib
del proyecto.Si utiliza Android Studio, cree una carpeta
libs
en el módulo de la aplicación cliente y copie el archivo .jar necesario en esta carpeta. Compruebe que la sección de dependencias del archivo gradle del módulo contiene lo siguiente.compile fileTree(include: ['*.jar'], dir: 'libs') compile fileTree(include: ['*.jar'], dir: 'app/libs')
Asegúrese de que no haya archivos .jar declarados duplicados.
-
Utilice la clase
ApiClientFactory
para inicializar el SDK generado por API Gateway. Por ejemplo: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;
-
Para utilizar un proveedor de credenciales de Amazon Cognito para autorizar las llamadas a la API, utilice la clase
ApiClientFactory
para pasar un conjunto de credenciales de AWS mediante el SDK generado por API Gateway, tal y como se muestra en el siguiente ejemplo.// 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);
-
Para definir una clave de API mediante el SDK generado por API Gateway, utilice un código similar al siguiente.
ApiClientFactory factory = new ApiClientFactory() .apiKey("YOUR_API_KEY");