

# Usar um SDK Ruby gerado pelo API Gateway para uma API REST
<a name="how-to-call-sdk-ruby"></a>

O procedimento a seguir mostra como usar um SDK Ruby gerado pelo API Gateway.

**nota**  
Estas instruções supõem que você já tenha concluído as instruções em [Gerar SDKs para APIs REST no API Gateway](how-to-generate-sdk.md).

**Para instalar, instancie e chame um SDK Ruby gerado pelo API Gateway para uma API REST**

1. Descompacte o arquivo SDK Ruby baixado. A origem do SDK gerado é mostrada da seguinte forma.  
![\[Descompacte o arquivo SDK Ruby obtido por download em um módulo Ruby\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/ruby-gem-of-generated-sdk-for-simplecalc.png)

   

1.  Crie um Ruby Gem a partir da origem do SDK gerado, usando os seguintes comandos shell em uma janela de terminal:

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

   Depois disso, **simplecalc-sdk-1.0.0.gem** se torna disponível.

1.  Instale o gem:

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

1.  Crie um aplicativo de cliente. Instancie e inicialize o cliente de SDK Ruby no aplicativo:

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

   Se a API com autorização do tipo `AWS_IAM` estiver configurada, você pode incluir as credenciais da AWS do chamador, fornecendo `accessKey` e `secretKey` durante a inicialização:

   ```
   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.  Faça chamadas de API por meio do SDK no aplicativo. 
**dica**  
 Se você não estiver familiarizado com as convenções de chamada do método do SDK, você pode verificar o arquivo `client.rb` na pasta `lib` do SDK gerado. A pasta contém a documentação de cada chamada de método de API suportada.

   Para descobrir as operações suportadas:

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

   Isso resulta na seguinte tela, correspondente aos métodos de API de `GET /?a={.}&b={.}&op={.}`, `GET /{a}/{b}/{op}` e `POST /`, além de uma carga no formato `{a:"…", b:"…", op:"…"}`, respectivamente:

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

   Para invocar o método de API de `GET /?a=1&b=2&op=+`, chame o método de SDK Ruby a seguir:

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

   Para invocar o método de API de `POST /` com uma carga de `{a: "1", b: "2", "op": "+"}`, chame o método de SDK Ruby a seguir:

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

   Para invocar o método de API de `GET /1/2/+`, chame o método de SDK Ruby a seguir:

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

   As chamadas bem-sucedidas do método de SDK retornam a seguinte resposta:

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