

# Uso de un SDK de Ruby generado por API Gateway para una API REST
<a name="how-to-call-sdk-ruby"></a>

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

**nota**  
En estas instrucciones, se presupone que ya se ha completado el procedimiento descrito en [Generación de SDK para las API de REST en API Gateway](how-to-generate-sdk.md).

**Para instalar, instanciar e invocar un SDK de Ruby generado por API Gateway para una API REST**

1. Descomprima el archivo descargado del SDK de Ruby. El código fuente del SDK generado es el siguiente.  
![\[El archivo descargado del SDK de Ruby se descomprime en un módulo de Ruby\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/ruby-gem-of-generated-sdk-for-simplecalc.png)

   

1.  Cree una gema de Ruby a partir del código fuente del SDK generado. Para ello, utilice los siguientes comandos shell en una ventana del terminal:

   ```
   # change to /simplecalc-sdk directory
   cd simplecalc-sdk
   
   # build the generated gem
   gem build simplecalc-sdk.gemspec
   ```

   Una vez realizada esta operación, **simplecalc-sdk-1.0.0.gem** pasa a estar disponible.

1.  Instale la gema:

   ```
   gem install simplecalc-sdk-1.0.0.gem
   ```

1.  Cree una aplicación cliente. Instancie e inicialice el cliente del SDK de Ruby en la aplicación:

   ```
   require 'simplecalc-sdk'
   client = SimpleCalc::Client.new(
       http_wire_trace: true,
       retry_limit: 5,
       http_read_timeout: 50
   )
   ```

   Si la API tiene una autorización de tipo `AWS_IAM`, puede incluir las credenciales de AWS del intermediario suministrando `accessKey` y `secretKey` durante la inicialización:

   ```
   require 'pet-sdk'
   client = Pet::Client.new(
       http_wire_trace: true,
       retry_limit: 5,
       http_read_timeout: 50,
       access_key_id: 'ACCESS_KEY',
       secret_access_key: 'SECRET_KEY'
   )
   ```

1.  Realice llamadas a la API a través del SDK de la aplicación. 
**sugerencia**  
 Si no está familiarizado con las convenciones de llamada a métodos del SDK, puede consultar el archivo `client.rb` de la carpeta `lib` del SDK generado. La carpeta contiene documentación sobre las llamadas a cada uno de los métodos de API compatibles.

   Para reconocer las operaciones admitidas:

   ```
   # to show supported operations:
   puts client.operation_names
   ```

   Esto genera la siguiente llamada, que corresponde a los métodos de la API `GET /?a={.}&b={.}&op={.}`, `GET /{a}/{b}/{op}` y `POST /`, junto con una carga en el formato `{a:"…", b:"…", op:"…"}`, respectivamente:

   ```
   [:get_api_root, :get_ab_op, :post_api_root]
   ```

   Para invocar el método `GET /?a=1&b=2&op=+` de la API, llame al siguiente método del SDK de Ruby:

   ```
   resp = client.get_api_root({a:"1", b:"2", op:"+"})
   ```

   Para invocar el método `POST /` de la API con una carga `{a: "1", b: "2", "op": "+"}`, llame al siguiente método del SDK de Ruby:

   ```
   resp = client.post_api_root(input: {a:"1", b:"2", op:"+"})
   ```

   Para invocar al método `GET /1/2/+` de la API, llame al siguiente método del SDK de Ruby:

   ```
   resp = client.get_ab_op({a:"1", b:"2", op:"+"})
   ```

   Las llamadas al método del SDK que se realizan correctamente devuelven la siguiente respuesta:

   ```
   resp : {
       result: {
           input: {
               a: 1,
               b: 2,
               op: "+"
           },
           output: {
               c: 3
           }
       }
   }
   ```