# How to ガイド - CLI におけるメソッドの実行

ここでは、Workato Gem を使用してメソッドを実行する方法について説明します。

# 前提条件

  • Workato SDK Gem をインストールして、実行可能であること。詳細については、「入門ガイド」を参照してください。
  • 少なくとも1つのメソッドを備えた、動作するコネクターがあること。以下のサンプルコネクターを使用します。
  • 有効な資格情報セットを所有していること。サンプルコネクターのコードを使用する場合、コネクター用に適切な資格情報を所有していることを確認してください。

# サンプルコネクター - Chargebee

connector.rb のコードを以下に示します。

{
  title: 'Chargebee-demo',

  connection: {
    fields: [
      {
        name: 'api_key',
        control_type: 'password',
        hint: 'You can find your API key final change3' \
          "under 'Settings'=>'Configure Chargebee'=>'API Keys and Webhooks'" \
          " in Chargebee's web console.",
        label: 'Your API Key'
      },
      {
        name: 'domain',
        control_type: 'subdomain',
        url: 'chargebee.com'
      }
    ],

    authorization: {
      type: 'basic_auth',  

      apply: lambda do |connection|
        user(connection['api_key'])
      end
    },

    base_uri: lambda do |connection|
      "https://#{connection['domain']}.chargebee.com"
    end
  },

  test: lambda do |_connection|
    get('/api/v2/plans', limit: 1)
  end,

  methods: {
    get_customers: lambda do
      get('/api/v2/customers')
    end,

    sample_method: lambda do |string1, string2|
      string1 + ' ' + string2
    end,
  },
}

settings.yaml.enc に格納された資格情報です。

api_key: valid_api_key
domain: valid_domain

TIP

暗号化された settings.yaml ファイルを使う場合は、workato edit <PATH> を使用して、このファイルを編集または作成する必要があります。詳細については、こちらを参照してください

SDK Gem を使用すると、メソッドを個別に呼び出して各メソッドの動作をより詳細に制御できるようになります。

# 例1: get_customers メソッドの実行

上記のサンプルで最初に取り上げるのは、入力引数が宣言されていない get_customers メソッドです。このメソッドが SDK Gem により呼び出されると、顧客データを取得して API からのレスポンスを返されます。

$ workato exec methods.get_customers
{
  "list": [
    {
      "customer": {
        "id": "abc",
        "first_name": "John",
        "last_name": "doe",
        "email": "[email protected]",
        "phone": "+100",
        "auto_collection": "on",
        "net_term_days": 0,
        "allow_direct_debit": false,
        "created_at": 1630848839,
        "taxability": "taxable",
        "updated_at": 1630848840,
        "locale": "en-US",
        "pii_cleared": "active",
        "resource_version": 1630848840782,
        "deleted": false,
        "object": "customer",
        "card_status": "valid",
        "promotional_credits": 0,
        "refundable_credits": 0,
        "excess_payments": 0,
        "unbilled_charges": 0,
        "preferred_currency_code": "SGD",
      }
    }
  ],
  "next_offset": "[\"1630848839000\",\"42903379\"]"
}

TIP

ここでは他のオプションも使うことができます。たとえば、--verbose を指定するとメソッドの実行時に送信された HTTP リクエストの詳細なログが表示され、--output を指定すると関数の出力が JSON ファイルに保存されます。

settings.yaml ファイルが定義されていない場合、SDK Gem は、デフォルトのsettings.yaml.enc ファイルを HTTP リクエストに使用するようになっています。

# 例2: sample_method メソッドの実行

上記のサンプルで2番目に取り上げるのは、2つの引数を持つ sample_method メソッドです。fixtures フォルダーに格納される JSON ファイルを指すコマンドで args を参照していることがわかります。このファイルには、 配列の各インデックスが1つの引数に対応する 配列を入れておく必要があります。

この場合、ファイル fixtures/triggers/new_updated_object/customer_input_poll.json の内容は以下のとおりです。

[
    "Hello",
    "world"
]

このメソッドの実行例を以下に示します。

$ workato exec methods.sample_method --args='fixtures/actions/search_customers/customer_config.json' 
"Hello world"

TIP

ここでは他のオプションも使うことができます。たとえば、--verbose を指定するとメソッドの実行時に送信された HTTP リクエストの詳細なログが表示され、--output を指定すると関数の出力が JSON ファイルに保存されます。

settings.yaml ファイルが定義されていない場合、SDK Gem は、デフォルトの settings.yaml.enc ファイルを HTTP リクエストに使用するようになっています。


Last updated: 2023/8/31 1:07:14