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.(このフローはコネクターのすべての認証とhttpリクエストを管理する)。
-
[Save all data that passes through the flow(フローを通過するすべてのデータを保存)]ボックスをチェックして[Save(保存)]をクリックします。
-
Helper Flowカードに次の入力名とデータタイプを追加します。[Click or drag to create(クリックまたはドラッグして作成)]という領域をクリックし、入力名を追加してEnterキーを押します。次に、フィールド自体に表示されるドロップダウンリストからタイプを選択します。
-
relative_url(テキスト)
-
request_method(テキスト)
-
query(オブジェクト)
-
headers(オブジェクト)
-
body(オブジェクト)
-
次のタスクは、HTTP呼び出しに適したオブジェクトを作成する一連のカードを構築します。選択するオプションは、使用する必要がある認証タイプによって決まります。
オプション1:OAuth認証の構築
-
ベアラーとアクセストークンを結合するために、Text Concatenate関数カードを追加します。
-
[text 1(テキスト1)]フィールドに「Bearer 」と入力します。連結文字列の一部であるため、空白文字も含めてください。
-
Helper Flowカードのaccess_token(アクセストークン)フィールドをConcatenateカードのtext 2(テキスト2)フィールドにドラッグします。
-
フィールドのドロップダウンリストをクリックして[customize(カスタマイズ)]をクリックし、出力フィールドにbearerという名前を付けます。これらのフィールド名の変更はベストプラクティスであり、必須ではありません。
-
Concatenateカードの後にObject Construct関数カードを追加します。
-
[Click or drop here to create(クリックまたはドラッグして作成)]という領域をクリックし、Authorizationというラベルを追加します。
-
Concatenateカードのbearer(ベアラー)出力フィールドをこのフィールドにドラッグします。
これにより、すべてのHTTPリクエストで共有される任意の追加ヘッダーを追加できるようになります。例:Content-Type(コンテンツタイプ)、application/json(アプリケーション/JSON)。
-
フィールドのドロップダウンをクリックして[customize(カスタマイズ)]をクリックし、出力フィールド名をheaderに変更します。
オプション2:基本認証の構築
-
ユーザー名とパスワードをコロンで区切って結合するためにText Concatenate関数カードを追加します。
-
Helper FlowカードのusernameフィールドをConcatenateカードのtext 1(テキスト1)入力にドラッグします。
-
Concatenateカードのtext 2(テキスト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関数カードを追加します。
-
[text 1(テキスト1)]フィールドに「Basic 」と入力します(Basicの後に空白文字を入れます)。
-
Base64カードのbase_64(base_64)出力を2番目のConcatenateカードのtext 2(テキスト2)フィールドにドラッグします。
-
2番目のConcatenateカードの出力フィールド名をauth_valueに変更します。
-
2番目のConcatenateカードの後にObject Constructを追加します。
-
[Click or drop here to create(クリックまたはドラッグして作成)]という領域をクリックし、Authorizationというラベルを追加します。
-
2番目のConcatenateカードのauth_value(auth_value)出力フィールドをこのフィールドにドラッグします。
これにより、サービスへのすべてのHTTPリクエストで共有される任意の追加ヘッダーを追加できるようになります。例:Content-Type(コンテンツタイプ)、application/json(アプリケーション/JSON)。
-
フィールドのドロップダウンをクリックして[customize(カスタマイズ)]をクリックし、この出力フィールドの名前をheaderに変更します。
オプション3:カスタム(APIキー)認証の構築
-
新規フローにObject Constructカードを追加します。
-
[Click or drop here to create(クリックまたはドラッグして作成)]という領域をクリックし、ヘッダーに含めるキーの名前を追加します。たとえば、api_keyのような名前を付けます。
-
Helper Flowカードのapi_key(APIキー)フィールドをこのフィールドにドラッグします。
これにより、すべてのHTTPリクエストで共有される任意の追加ヘッダーを追加できるようになります。例:Content-Type(コンテンツタイプ)、application/json(アプリケーション/JSON)。
httpHelperフローを完成させる
-
フローにObject Mergeカードを追加します。
-
Construct関数カードのheader(ヘッダー)出力をMergeカードのobject 1(オブジェクト1)フィールドにドラッグします。
-
Helper Flowカードのheaders(ヘッダー)出力をMergeカードのobject 2(オブジェクト2)フィールドにドラッグします。これにより、必要なエンドポイント固有のヘッダーを渡せるようになります。
-
Mergeカードの出力フィールド名をmerged_headerに変更します。
-
フローにText Concatenateカードを追加します。
-
フローのベースURLを特定のエンドポイントなしで[text 1(テキスト1)]フィールドに入力します(例:https://api.spotify.com/v1)。
-
Helper Flowカードのrelative_url(関連URL)フィールドをtext 2(テキスト2)フィールドにドラッグします。
-
このカードの出力フィールド名をfull_url(フルURL)に変更します。
-
[API Connector(APIコネクター)]からRaw Requestアクションカードを追加します。
-
Concatenateカードのfull_url(フルURL)出力フィールドをRaw RequestカードのURL(URL)入力にドラッグします。
-
Helper Flowカードのrequest_method(要求メソッド)出力フィールドをRaw RequestカードのMethod(メソッド)入力にドラッグします。
-
Helper Flowカードのquery(クエリ)出力フィールドをRaw RequestカードのQuery(クエリ)入力にドラッグします。
-
Mergeカードのmerged_header(merged_header)フィールドをRaw RequestカードのHeaders(ヘッダー)入力にドラッグします。
-
Helper Flowカードのbody(本文)出力フィールドをRaw RequestカードのBody(本文)入力にドラッグします。
-
[Click or drop here to create(クリックまたはドラッグして作成)]という領域をクリックし、この3つのフィールドをFlow Control Returnカードに追加します。
-
status_code(数値)
-
headers(Object)
-
body(オブジェクト)
-
-
Raw Requestカードの対応する出力を新たに作成したフィールドにドラッグします。
-
フローを保存し、テストダイアログに相対URL、リクエストメソッド、その他の必要データを手動で追加してテストします。