LoginSignup
0
0

More than 1 year has passed since last update.

Workato:Custom Connector作成

Posted at

1. はじめに

WorkatoのCustom Connector作成手順をサンプルとして後述に記載します。
Custom Connectorというと作成に多くの時間がかかりそうと思われますが、Workatoのドキュメントをもとに簡単に作成ができます。
是非試してもらえればと思います。

2. 新規コネクターの作成

①「Tools」⇒「Connector SDK」の順にクリックします。
Image001.png

②「Connector SDK」画面より、「New connector」ボタンをクリックしConnectorを作成します。
Image002.png

③connector名を入力します。
Image003.png

新規コネクターの作成方法は以下URLに記載されています。
・Using the Workato Connector SDK
https://docs.workato.com/developing-connectors/sdk/quickstart.html#using-the-workato-connector-sdk

3. コネクションの作成および動作確認

①下記参考情報内のサンプルコードを「SourceCode」に設定し「Save」ボタンをクリックします。

・Connector Walkthrough
https://docs.workato.com/developing-connectors/sdk/guides/walkthrough.html#getting-started
Creating a connection

{
  title: 'Star Wars information',

  connection: {
    fields:
    [
      {
        name: "object",
        hint: "Type in the object you would like to test your connection with",
      }
    ]
  },

  test: lambda do |connection|
    get("https://swapi.dev/api/people/1")
  end,

  # More code below but hidden for now!
}
key 説明
connection コネクターのコネクションを定義
fields コネクション内のフィールドを定義

②「field」に任意の文字を入力後、「Connect」ボタンをクリックし、接続されることを確認します。
Image005.png
Image006.png

4. アクションの作成および動作確認

①下記参考情報内のサンプルコードを「SourceCode」に設定し「Save」ボタンをクリックします。

・Connector Walkthrough
https://docs.workato.com/developing-connectors/sdk/guides/walkthrough.html
Creating an action

{
  title: 'Star Wars information',

  connection: {
    fields:
    [
      {
        name: "object",
        hint: "Type in the object you would like to test your connection with",
      }
    ]
  },

  test: lambda do |connection|
    get("https://swapi.dev/api/people/1")
  end,

  actions: {
    get_person_by_id: {                
      input_fields: lambda do
        [
          {
            name: 'id',
            label: 'Person ID',
            type: 'integer',
            optional: false
          }
        ]
      end,

      execute: lambda do |connection, input|
        get("https://swapi.dev/api/people/#{input["id"]}/")
      end,

      output_fields: lambda do
        [
          {
            name: "name",
            label: "Person name",
            type: "string"
          },
          {
            name: "vehicles",
            label: "Vehicles",
            type: "array",
            of: "string"
          }
        ]
      end
    },
  },
}
key 説明
input_fields アクション構成時の入力フィールドを指定
execute HTTPリクエスト、リクエストの送信先URL等を指定
output_fields アクションから返されるデータピルを宣言

②作成したアクション「Get person by ID」をクリックします。
Image007.png

③「Person ID」入力項目に「1」を設定し、「Test action」ボタンをクリックします。
Image008.png

④右側の「Console」の「Output」より取得されたデータを確認します。
Image009.png

5. httpbinサービスを利用して動作確認実施

「httpbin」はHTTPリクエストとレスポンスの確認に便利なWebサービスです。
BASIC認証での接続をテストもできますので当サービスを使用して認証、様々なアクション(GET,POSTなど)の動作が確認可能です。

・「httpbin」サービスの参考情報

httpbin を使って HTTP の検証をする
https://qiita.com/toshihirock/items/c7279fdcf808d3128261

APIクライアント開発時のモックに使えるhttpbinの紹介
https://qiita.com/sameyasu/items/adacceb8a1bee893599b

・「Workato CustomConnectorの基本認証」の参考情報

How-to Guide - Basic Authentication
https://docs.workato.com/developing-connectors/sdk/guides/authentication/basic-authentication.html#how-to-guide-basic-authentication

①サンプルコードの実施

以下にサンプルコードを記載します。認証、アクション(GET)の動作確認が可能です。

{
  title: 'httpbin Connector',

  connection: {
    fields: [
      {
        name: 'username',
        optional: false,
        hint: 'httpbin user name'
      },
      {
        name: 'password',
        optional: false,
        control_type: 'password',
        hint: 'httpbin password'
      }
    ],

    authorization: {
      type: 'basic_auth',
      apply: lambda do |connection|
        user(connection['username'])
        password(connection['password'])
      end
    },

    base_uri: lambda do |connection|
      "https://httpbin.org"
    end


  },

  test: lambda do |connection|
       get("/basic-auth/admin/admin")
  end,

  actions: {
    get: {               



      input_fields: lambda do
        [
          {
            name: 'param1',
            label: 'param1',
            type: 'string',
            optional: false
          }

        ]
      end,

      execute: lambda do |connection,input|
        get("/get",input)
      end,

      output_fields: lambda do
        [
          {
            name: "param1",
            label: "param1",
            type: "string"
          }
        ]
      end
    },
  },

}

Image010.png

6. おわりに

Custom Connectorが、Workatoのドキュメントをもとに簡単に作成ができることを実感できましたでしょうか。
Workatoのドキュメントにいろいろな情報が存在するので是非他にも試してもらえればと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0