Uso de un SDK de JavaScript generado por API Gateway para una API REST - Amazon API Gateway

Uso de un SDK de JavaScript generado por API Gateway para una API REST

En el siguiente procedimiento se muestra cómo crear un SDK de JavaScript generado por API Gateway.

nota

En estas instrucciones se presupone que ya ha completado las instrucciones de Generación de SDK para las API de REST en API Gateway.

importante

Si su API solo tiene métodos ANY definidos, el paquete SDK generado no contendrá un archivo apigClient.js, por lo que tendrá que definir los métodos ANY usted mismo.

Para instalar, iniciar e invocar un SDK de JavaScript generado por API Gateway para una API REST
  1. Extraiga el contenido del archivo .zip generado por API Gateway que ha descargado anteriormente.

  2. Habilite el uso compartido de recursos de origen cruzado (CORS) para todos los métodos a los que llamará el SDK generado por API Gateway. Para obtener instrucciones, consulte CORS para las API de REST en API Gateway.

  3. En la página web, incluya referencias a los siguientes scripts.

    <script type="text/javascript" src="lib/axios/dist/axios.standalone.js"></script> <script type="text/javascript" src="lib/CryptoJS/rollups/hmac-sha256.js"></script> <script type="text/javascript" src="lib/CryptoJS/rollups/sha256.js"></script> <script type="text/javascript" src="lib/CryptoJS/components/hmac.js"></script> <script type="text/javascript" src="lib/CryptoJS/components/enc-base64.js"></script> <script type="text/javascript" src="lib/url-template/url-template.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/sigV4Client.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/apiGatewayClient.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/simpleHttpClient.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/utils.js"></script> <script type="text/javascript" src="apigClient.js"></script>
  4. En el código, inicialice el SDK generado por API Gateway mediante un código similar al siguiente.

    var apigClient = apigClientFactory.newClient();

    Para inicializar el SDK generado por API Gateway con credenciales de AWS, utilice un código similar al siguiente. Si utiliza las credenciales de AWS, todas las solicitudes a la API se firmarán.

    var apigClient = apigClientFactory.newClient({ accessKey: 'ACCESS_KEY', secretKey: 'SECRET_KEY', });

    Para utilizar una clave de API con el SDK generado por API Gateway, pase la clave de API como parámetro al objeto Factory utilizando un código similar al siguiente. Si utiliza una clave de API, esta se especifica como parte del encabezado x-api-key y todas las solicitudes a la API se firmarán. Esto significa que debe configurar los encabezados Accept de CORS adecuados para cada solicitud.

    var apigClient = apigClientFactory.newClient({ apiKey: 'API_KEY' });

  5. Llame a los métodos de la API en API Gateway con un código similar al siguiente. Cada llamada devuelve una promesa con devoluciones de llamada de éxito y fracaso.

    var params = { // This is where any modeled request parameters should be added. // The key is the parameter name, as it is defined in the API in API Gateway. param0: '', param1: '' }; var body = { // This is where you define the body of the request, }; var additionalParams = { // If there are any unmodeled query parameters or headers that must be // sent with the request, add them here. headers: { param0: '', param1: '' }, queryParams: { param0: '', param1: '' } }; apigClient.methodName(params, body, additionalParams) .then(function(result){ // Add success callback code here. }).catch( function(result){ // Add error callback code here. });

    Aquí, methodName se crea a partir de la ruta y el verbo HTTP del recurso de la solicitud de método. Para la API SimpleCalc, los métodos de SDK para los métodos de la API de

    1. GET /?a=...&b=...&op=... 2. POST / { "a": ..., "b": ..., "op": ...} 3. GET /{a}/{b}/{op}

    los métodos del SDK correspondientes son los siguientes:

    1. rootGet(params); // where params={"a": ..., "b": ..., "op": ...} is resolved to the query parameters 2. rootPost(null, body); // where body={"a": ..., "b": ..., "op": ...} 3. aBOpGet(params); // where params={"a": ..., "b": ..., "op": ...} is resolved to the path parameters