httpHelperフローを構築する
httpHelperフローは、コネクタービルダーで構築される各アクションカードの認証と任意のHTTPリクエストを管理します。
これは、パターンの繰り返しを減らすというソフトウェア開発の原則に対応します。
httpHelperフローの作成にはいくつかのタスクが関連します。
次の例は、完全なhttpHelperフローがOkta Workflowsにどのように表示されるかを示しています。
このタスクを開始する
httpHelperフローを作成する
-
フロー(Flows)タブで、新規フロー(+ New Flow)をクリックしてフローを作成します。
-
イベントの追加(Add event)をクリックし、ヘルパーフロー(Helper Flow)を選択します。
-
ツールバーの保存(Save)をクリックし、フローに
httpHelperという名前を付けます。 -
チームの他の作成者がフローの目的を理解できるように、フローの説明を追加します。例:
This flow manages all authentication and http requests for the connector. -
フローを通過するすべてのデータを保存(Save all data that passes through the flow)ボックスをチェックし、保存(Save)をクリックします。
-
Helper Flowカードに次の入力名とデータタイプを追加します。クリックまたはドラッグして作成(Click or drag to create)という領域をクリックし、入力名を追加してEnterキーを押します。次に、フィールド自体に表示されるドロップダウンリストからタイプを選択します。
-
relative_url、Text -
request_method、Text -
query、Object -
headers、Object -
body、Object
-
次のタスクは、HTTP呼び出しに適したオブジェクトを作成する一連のカードを構築します。選択するオプションは、使用する必要がある認証タイプによって決まります。
オプション1:OAuth認証を構築する
-
Bearerとアクセストークンを結合するために、Text Concatenate関数カードを追加します。 -
テキスト1(text 1)フィールドに
Bearerと入力します。連結文字列の一部であるため、空白文字も含めてください。 -
Helper Flowカードのアクセストークン(access_token)フィールドをConcatenateカードのテキスト2(text 2)フィールドにドラッグします。
-
フィールドのドロップダウンリストをクリックしてカスタマイズ(customize)をクリックし、出力フィールドに
bearerという名前を付けます。これらのフィールド名の変更はベストプラクティスであり、必須ではありません。 -
Concatenateカードの後にObject Construct関数カードを追加します。
-
クリックまたはドラッグして作成(Click or drop here to create)という領域をクリックし、
Authorizationというラベルを追加します。 -
Concatenateカードのベアラー(bearer)出力フィールドをこのフィールドにドラッグします。
これにより、すべてのHTTPリクエストで共有される任意の追加ヘッダーを追加できるようになります。たとえば、
Content-Type、application/jsonとなります。 -
フィールドのドロップダウンリストをクリックしてカスタマイズ(customize)をクリックし、出力フィールドを
headerという名前に変更します。
オプション2:基本認証を構築する
-
ユーザー名とパスワードをコロンで区切って結合するために、Text Concatenate関数カードを追加します。
-
Helper FlowカードのusernameフィールドをConcatenateカードのテキスト1(text 1)入力にドラッグします。
-
Concatenateカードのテキスト2(text 2)フィールドに手動でコロン(
:)を入力します。 -
Helper FlowカードのpasswordフィールドをConcatenateカードのクリックまたはドラッグして作成(Click or drop here to create)というラベルの領域にドラッグします。
-
Concatenateカードの出力フィールド名を
username_passwordに変更するか、有用な別の名前に変更します。 -
Text Base64関数カードを追加します。Concatenateカードのusername_passwordフィールドをBase64カードのテキスト(text)入力にドラッグします。
-
フィールドのドロップダウンをクリックしてカスタマイズ(customize)をクリックし、Base64カードの出力フィールド名を
base_64に変更します。 -
フローに別のText Concatenate関数カードを追加します。
-
テキスト1(text 1)フィールドに
Basicと入力します(空白文字を入れます)。 -
Base64(base_64)カードのbase_64(base_64)(Base64)出力を2番目のConcatenate(text 2)カードのテキスト2(text 2)(Concatenate)フィールドにドラッグします。
-
2番目のConcatenateカードの出力フィールド名を
auth_valueに変更します。 -
2番目のConcatenateカードの後にObject Constructを追加します。
-
ここをクリックまたはドラッグして作成(Click or drop here to create)をクリックし、
Authorizationというラベルを追加します。 -
2番目のConcatenateカードのauth_value出力フィールドをこのフィールドにドラッグします。
これにより、サービスへのすべてのHTTPリクエストで共有される任意の追加ヘッダーを追加できるようになります。たとえば、
Content-Type、application/jsonとなります。 -
フィールドのドロップダウンリストをクリックしてカスタマイズ(customize)をクリックし、この出力フィールドを
headerという名前に変更します。
オプション3:カスタム(APIキー)認証の構築
-
新規フローにObject Constructカードを追加します。
-
ここをクリックまたはドラッグして作成(Click or drop here to create)という領域をクリックし、ヘッダーに含めるキーの名前を追加します。たとえば、
api_keyです。 -
Helper Flowカードのapi_keyフィールドをこのフィールドにドラッグします。
これにより、すべてのHTTPリクエストで共有される任意の追加ヘッダーを追加できるようになります。たとえば、
Content-Type、application/jsonとなります。
オプション4:複数認証
-
分岐ルックアップ(Branching Lookup)関数カードを追加して、認証選択キーを検索します。
-
ヘルパーフロー(Helper Flow)(Selected Auth)カードの選択された認証(Selected Auth)(Helper Flow)フィールドを分岐ルックアップ(Branching Lookup)(Value)カードの値(Value)(Branching Lookup)フィールドにドラッグします。
-
各認証選択キーの値をコピーして値が次の場合(When Value is)フィールドに貼り付け、結果を入力します。
-
それ以外の場合の結果(Otherwise Result is)フィールドに
No Authと入力します。 -
If/ElseIf関数カードを追加します。
-
各認証選択キーにequal to条件を作成します。
-
分岐ルックアップ(Branching Lookup)(Result)関数カードの結果(Result)(Branching Lookup)出力を、各条件の値a(value a)フィールドにドラッグします。値b(value b)をTHEN結果(Then Result is)フィールドの対応する値に設定します。
-
オプション1~3の手順に従い、各条件に該当する認証を追加します。
複数の認証を構築するを参照してください。
httpHelperフローを完成させる
-
フローにObject Mergeカードを追加します。
-
Construct(header)関数カードのヘッダー(header)(Construct)出力をMerge(object 1)カードのオブジェクト1(object 1)(Merge)フィールドにドラッグします。
-
Helper Flow(headers)カードのヘッダー(headers)(Helper Flow)出力をMerge(object 2)カードのオブジェクト2(object 2)(Merge)フィールドにドラッグします。これにより、必要なエンドポイント固有のヘッダーを渡せるようになります。
-
Mergeカードの出力フィールド名を
merged_headerに変更します。 -
フローにText Concatenateカードを追加します。
-
フローのベースURLを特定のエンドポイントなしでテキスト1(text 1)フィールドに入力します。たとえば、
https://api.spotify.com/v1です。 -
Helper Flowカードのrelative_urlフィールドをテキスト2(text 2)フィールドにドラッグします。
-
このカードの出力フィールド名をフルURL(full_url)に変更します。
-
APIコネクター(API Connector)(Raw Request)からRaw Request(API Connector)アクションカードを追加します。
-
Concatenate(full_url)カードのフルURL(full_url)(Concatenate)出力フィールドをRaw Request(URL)カードのURL(URL)(Raw Request)入力にドラッグします。
-
Helper Flow(request_method)カードの要求メソッド(request_method)(Helper Flow)出力フィールドをRaw Request(Method)カードのメソッド(Method)(Raw Request)入力にドラッグします。
-
Helper Flow(query)カードのクエリ(query)(Helper Flow)出力フィールドをRaw Request(Query)カードのクエリ(Query)(Raw Request)入力にドラッグします。
-
Merge(merged_header)カードのmerged_header(merged_header)(Merge)フィールドをRaw Request(Headers)カードのヘッダー(Headers)(Raw Request)入力にドラッグします。
-
Helper Flow(body)カードの本文(body)(Helper Flow)出力フィールドをRaw Request(Body)カードの本文(Body)(Raw Request)入力にドラッグします。
-
ここをクリックまたはドラッグして作成(Click or drop here to create)という領域をクリックして、この3つのフィールドをFlow Control Returnカードに追加します。
-
status_code、Number -
headers、Object -
body、Object
-
-
Raw Requestカードの対応する出力を、新たに作成したフィールドにドラッグします。
-
フローを保存し、テストダイアログに相対URL、リクエストメソッド、その他の必要データを手動で追加してテストします。
次の手順