

# API Gateway によって生成された Ruby SDK を REST API で使用する
<a name="how-to-call-sdk-ruby"></a>

次の手順は、API Gateway によって生成された Ruby SDK を使用する方法を示しています。

**注記**  
これらの手順は、すでに「[API Gateway で REST API の SDK を生成する](how-to-generate-sdk.md)」の手順を完了していることを前提としています。

**REST API に対して API Gateway で生成された Ruby SDK をインストールし、開始して呼び出すには**

1. ダウンロードした Ruby SDK ファイルを解凍します。生成された SDK ソースは、次のように表示されます。  
![\[ダウンロードした Ruby SDK ファイルを Ruby モジュールに解凍します\]](http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/images/ruby-gem-of-generated-sdk-for-simplecalc.png)

   

1.  ターミナルウィンドウで次のシェルコマンドを使用して、生成された SDK ソースから Ruby Gem を構築します。

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

   この後、[**simplecalc-sdk-1.0.0.gem**] が利用可能になります。

1.  gem をインストールします。

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

1.  クライアントアプリケーションを作成します。アプリで Ruby SDK クライアントをインスタンス化して初期化します。

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

   API に `AWS_IAM` タイプの認可が設定されている場合、初期化中に `accessKey` と `secretKey` を指定して、発信者の AWS 認証情報を含めることができます。

   ```
   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.  アプリで SDK を使用して API 呼び出しを行います。
**ヒント**  
 SDK のメソッド呼び出し規則に精通していない場合は、生成された SDK の `client.rb` フォルダの `lib` ファイルを確認できます。このフォルダには、サポートされている各 API メソッド呼び出しのドキュメントが含まれています。

   サポートされているオペレーションを検出するには:

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

   これにより、`GET /?a={.}&b={.}&op={.}`、`GET /{a}/{b}/{op}`、および `POST /` の API メソッドに対応する次のような表示になります。必要に応じて `{a:"…", b:"…", op:"…"}` 形式のペイロードを加えます。

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

   `GET /?a=1&b=2&op=+`API メソッドを呼び出すには、以下の Ruby SDK メソッドを呼び出します。

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

   `POST /` を使用して、`{a: "1", b: "2", "op": "+"}` API メソッドを呼び出すには、以下の Ruby SDK メソッドを呼び出します。

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

   `GET /1/2/+`API メソッドを呼び出すには、以下の Ruby SDK メソッドを呼び出します。

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

   SDK メソッド呼び出しが正常に終了すると次のレスポンスを返します。

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