

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用由 API Gateway 為 REST API 產生的 Ruby 軟體開發套件
<a name="how-to-call-sdk-ruby"></a>

下列程序顯示如何使用 API Gateway 產生的 Ruby SDK。

**注意**  
這些說明假設您已完成「[在 API Gateway 中為 REST API 產生 SDK](how-to-generate-sdk.md)」中的說明。

**安裝、執行個體化和呼叫 API Gateway 為 REST API 產生的 Ruby 軟體開發套件**

1. 解壓縮下載的 Ruby 開發套件檔案。產生的開發套件來源如下所示。  
![\[將下載的 Ruby 開發套件檔案解壓縮到 Ruby 模組\]](http://docs.aws.amazon.com/zh_tw/apigateway/latest/developerguide/images/ruby-gem-of-generated-sdk-for-simplecalc.png)

   

1.  在終端機視窗中使用以下 shell 命令，從產生的開發套件來源建立 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 開發套件用戶端：

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

   如果 API 已設定 `AWS_IAM`類型的授權，您可以在初始化`secretKey`期間提供 `accessKey`和 來包含發起人的 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.  在應用程式中透過開發套件呼叫 API。
**提示**  
 如果您不熟悉開發套件方法呼叫慣例，您可以參閱產生的開發套件 `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 開發套件方法：

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

   若要呼叫 `POST /` API 方法加上 `{a: "1", b: "2", "op": "+"}` 承載，請呼叫以下 Ruby 開發套件方法：

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

   若要呼叫 `GET /1/2/+` API 方法，請呼叫以下 Ruby 開發套件方法：

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

   成功的開發套件方法呼叫傳回以下回應：

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