httpHelperフローの構築
httpHelperフローは、コネクタービルダーで構築する各アクションカードについて、認証と任意のHTTPリクエストという2つの事柄を管理します。これは、ソフトウェアパターンの繰り返しを減らすことを目的としたソフトウェア開発のDRY(Don't Repeat Yourself、自分自身を繰り返さない)の原則に賛同して実装されたものです。
httpHelperフローを作成する
-
ページ右上端の[+ New Flow(新規フロー)]をクリックし、[Flows(フロー)]タブで新規フローを作成します。
-
ページの左端にある[Helper Flow(ヘルパーフロー)]をクリックします。
-
ツールバーの[Save(保存)]をクリックし、フローに
httpHelper
という名前を付けます。 -
チームの他の作成者がフローの目的を理解できるように、フローの説明を追加します。例:
This flow manages all authentication and http requests for the connector.(このフローはコネクターのすべての認証とhttpリクエストを管理する)
。 -
[Save all data that passes through the flow(フローを通過するすべてのデータを保存)]ボックスをチェックして[Save(保存)]をクリックします。
-
ヘルパーフローカードの「Click or drag to create(クリックまたはドラッグして作成)」の領域をクリックし、入力名を追加してEnterキーを押し、フィールド自体に表示されるドロップダウンから型を選択して、次の入力名とデータ型を追加します。
-
relative_url(テキスト)
-
request_method(テキスト)
-
query(オブジェクト)
-
headers(オブジェクト)
-
body(オブジェクト)
-
-
次に、認証のタイプに応じて、適切な資格情報を構築するための一連のカードをHTTP呼び出し用のオブジェクトに作成します。
オプション1:OAuth認証の構築
-
「Bearer」とaccess_tokenを結合するためのText Concatenateカードを追加します。
-
[text 1(テキスト1)]フィールドに「
Bearer
」と入力します。「
Bearer
」のように、Bearerの後にスペースを入れてください。 -
Helper Flowカードのaccess_tokenフィールドをConcatenateカードのtext 2フィールドにドラッグします。
-
フィールドのドロップダウンをクリックして[customize(カスタマイズ)]をクリックし、出力フィールドに
bearer
という名前を付けます。これらのフィールドの命名はベストプラクティスであり、必須ではありません。 -
Concatenateカードの右にObject Constructカードを追加します。
-
「
Click or drop here to create(クリックまたはドラッグして作成)
」の領域をクリックし、Authorization
というラベルを追加します。 -
このフィールドにConcatenate関数のbearer出力フィールドをドラッグします。この時点で、サービスへのすべてのHTTPリクエストで共有される任意の追加ヘッダーを追加できます。例:
"Content-Type”: “application/json”(コンテンツタイプ:アプリケーション/JSON)
-
この出力フィールドの名前を
header
に変更します。
オプション2:基本認証の構築
-
ユーザー名とパスワードをコロンで区切って結合するText Concatenateカードを追加します。
-
Helper FlowカードのusernameフィールドをConcatenateカードのtext 1フィールドにドラッグします。
-
Concatenateカードのtext 2フィールドに手動でコロン(
:
)を入力します。 -
Helper FlowカードのpasswordフィールドをConcatenateカードの「Click or drop here to create(クリックまたはドラッグして作成)」の領域にドラッグします。
-
Concatenateカードの出力フィールド名を
username_password
に変更するか、意味のある別の名前に変更します。 -
Text Base64カードを追加し、Text Concatenateカードのusername_passwordフィールドをBase64カードのtext入力にドラッグします。
-
Base64カードの出力フィールドの名前を
base_64
に変更します。 -
フローに別のText Concatenateカードを追加します。
-
[text 1(テキスト1)]フィールドに「
Basic
」と入力します(Basicの後にスペースを入れます)。「
Basic
」のように、Basicの後にスペースを入れてください。
-
Text Base64カードのbase_64出力を2番目のConcatenateカードのtext 2フィールドにドラッグします。
-
2番目のConcatenateカードの出力フィールドの名前を
auth_value
に変更します。 -
2番目のConcatenateカードの右にObject Constructカードを追加します。
-
「Click or drop here to create(クリックまたはドラッグして作成)」の領域をクリックし、Authorizationというラベルを追加します。
-
2番目のConcatenateカードのauth_value出力をこのフィールドにドラッグします。この時点で、サービスへのすべてのHTTPリクエストで共有される任意の追加ヘッダーを追加できます。例:“Content-Type”: “application/json”(コンテンツタイプ:アプリケーション/JSON)
-
この出力フィールドの名前を
header
に変更します。
オプション3:カスタム(Apiキー)認証の構築
-
新しいフロー(ヘルパーフローの右)にObject Constructカードを追加します。
-
「Click or drop here to create(クリックまたはドラッグして作成)」の領域をクリックし、ヘッダーに含めるキーの名前を追加します。たとえば、
api_key
のような名前を付けます。 -
Helper Flowカードのapi_key(またはコネクターの認証の設定時に付けた別の名前)をこのフィールドにドラッグします。この時点で、サービスへのすべてのHTTPリクエストで共有される任意の追加ヘッダーを追加できます。例:“Content-Type”: “application/json”(コンテンツタイプ:アプリケーション/JSON)
httpHelperフローの構築を完了する
-
フローにObject Mergeカードを追加します。
-
Constructカードのheader出力をMergeカードのobject 1フィールドにドラッグします。
-
Helper Flowカードのheaders出力をMergeカードのobject 2フィールドにドラッグします。これにより、必要なエンドポイント固有のヘッダーを渡せるようになります。
-
Mergeカードの出力フィールド名を
merged_header
に変更します。 -
フローにText Concatenateカードを追加します。
-
フローのベースURLを特定のエンドポイントなしで[text 1(テキスト1)]フィールドに入力します(例:
https://api.spotify.com/v1
)。 -
Helper Flowカードのrelative_urlフィールドをtext 2フィールドにドラッグします。
-
このカードの出力フィールド名をfull_urlに変更します。
-
HTTP Raw Requestカードを追加します。
-
Concatenateカードのfull_url出力フィールドをRaw RequestカードのURL入力にドラッグします。
-
Helper Flowカードのrequest_method出力フィールドをRaw RequestカードのMethod入力にドラッグします。
-
Helper Flowカードのquery出力フィールドをRaw RequestカードのQuery入力にドラッグします。
-
Helper Flowカードのmerged_headerフィールドをRaw RequestカードのHeaders入力にドラッグします。
-
Helper Flowカードのbody出力フィールドをRaw RequestカードのBody入力にドラッグします。
-
「Click or drop here to create(クリックまたはドラッグして作成)」の領域をクリックし、この3つのフィールドをFlow Control Returnカードに追加します。
-
status_code(数値)
-
headers(オブジェクト)
-
body(オブジェクト)
-
Raw Requestカードの対応する出力を新たに作成したフィールドにドラッグします。
-
フローを保存し、テストダイアログに相対URL、リクエストメソッド、その他の必要データを手動で追加してテストします。