動的ドロップダウンフィールドの追加:HTTPの例
アイテムのリストを取得するためにHTTP呼び出しが必要な場合に、作成者はヘルパーフローを使って[Options(オプション)]ドロップダウンの値を取り込むことができます。
次の例では、次の2つのフローを使ってドロップダウンのリストを作成します。
-
結果を適切なリストオブジェクトに整形する処理フロー
-
リストを取得するフロー
処理フロー
処理フローは、反復フローによって取得されるアイテムのリストから個々のアイテムを受け取ります。これは、各アイテムからキーと値のペアを抽出し、ドロップダウンリストの作成に適した形状の呼び出しフローを返すために使用されます。
ドロップダウンのアイテムリストを返すために使用されるフローは、次の形状のオブジェクトを返す必要があります。
[
{
"value":"English",
"key":"en_us"
},
{
"value":"Chinese (Simplified)",
"key":"zh_CN"
},
{
"value":"Danish",
"key":"da"
}
]
処理フローを作成するには:
-
[Flows(フロー)]タブに切り替えます。
-
[+ New Flow(新規フロー)]をクリックして新しいフローを作成します。
-
フローの最初のカードとしてHelper Flowカードを追加します。
-
[Save(保存)]をクリックし、フローに
Dropdown List Processing
という名前を付けます。 -
フローの説明として「
Processes a list of items and reformats it to be used as a dropdown(アイテムのリストを処理し、ドロップダウンとして使用できるように再フォーマットする)
」と入力し、[Save all data that passes through the flow?(フローを通過するすべてのデータを保存?)]ボックスをチェックして[Save(保存)]をクリックします。 -
[Click or drag to create(クリックまたはドラッグして作成)]をクリックしてHelper Flowカードにフィールドを追加します。
-
ラベルを追加して
list_item
という名前を付け、[Enter(入力)]をクリックします。 -
ドロップダウンからフィールドのオブジェクトタイプを選択します。デフォルトはText(テキスト)です。
-
[Add function(関数の追加)]をクリックしてフローにGet Multiple関数カードを追加します。
-
Helper Flowカードのlist_itemフィールドをGet Multipleカードのobject入力にドラッグします。
-
Get Multipleカードへの出力として抽出する値のキー名を追加します。
-
[Click or drop here to create(クリックまたはドラッグして作成)]をクリックしてFlow Control Returnカードに2つのフローを追加し、両者のキー名を入力します。一方のフィールドにはkey、もう一方のフィールドにはvalueという名前を付けます。ドロップダウンが作成されると、keyはユーザーに表示され、valueはフローに渡されます。キーと値に異なる名前が付けられている必要はありません。
-
ユーザーに表示されるGet MultipleカードのフィールドをReturnカードのkeyフィールドにドラッグします。
-
フローに渡されるGet MultipleカードのフィールドをReturnカードのvalueフィールドにドラッグします。
-
[Save(保存)]と[Run(実行)]をクリックします。
取得フロー
取得フローは、サービスからオブジェクトのリストを取得するために使用されます。これは、HTTPリクエストを作成してリクエスト内のオブジェクトのリストを特定し、そのリストを処理フローに渡します。
取得フローを作成するには、次の手順に従います。
-
[Flows(フロー)]タブに切り替えます。[+ New Flow(新規フロー)]をクリックして新しいフローを作成します。
-
フローの最初のカードとしてHelper Flowカードを追加します。
-
[Save(保存)]をクリックしてフローに
Get List of <object>
という名前を付けます。この<object>は、取得するオブジェクトのタイプです。 -
フローの説明として「
Retrieves a list of <x> from the service and passes it to a helper Flow to be processed(サービスから<x>のリストを取得し、処理のためにヘルパーフローに渡す)
」と入力し、[Save all data that passes through the flow?(フローを通過するすべてのデータを保存?)]を選択して[Save(保存)]をクリックします。 -
Call Flowカードをフローの最初のカードとして追加します。
-
[Choose Flow(フローの選択)]をクリックします。
-
httpHelperフローを構築するか、事前に作成したhttp_helperを選択します。「httpHelperフローの構築」を参照してください。カードには、http_helperフローに定義されている入力が自動的に取り込まれます。
-
リクエストメソッドとしてGETを入力します。
-
エンドポイントの相対URLを入力します。
-
Helper Flowカードのauth(認証)オブジェクトをCall FlowカードのConnection(接続)入力フィールドにドラッグします。
-
Call Flowカードの出力には、http_helperフローの出力と同じキーを定義する必要があります。
-
status_code(数値)
-
headers(オブジェクト)
-
body(オブジェクト)
-
-
フローにObject Getカードを追加します。
-
Call FlowカードのbodyフィールドをGetカードのobjectフィールドにドラッグします。
-
返されるリストの形状は、サービスによって異なります。pathフィールドには、リストを特定するためのドット表記の構文を入力する必要があります(例:<object>.items)。注:このカードは不要である可能性があります。
-
フィールドのドロップダウンをクリックして[customize(カスタマイズ)]をクリックし、出力フィールドに
item_list
という名前を付けます。 -
フローにList Mapカードを追加します。
-
Getカードのcategories_listフィールドをMapカードのlistフィールドにドラッグします。
-
[Choose Flow(フローの選択)]をクリックし、前述の例のDropdown List Processingフローを選択します。
-
list_itemの横のドロップダウンを選択し、[Item(アイテム)]を選択します。これにより、item_listの各アイテムが処理フローに渡され、適切な形式の新しいリストが返されます。
-
Mapカードの出力名をnew_item_listに変更します。
-
Helper Flowカードのauth(認証)オブジェクトをList MapカードのConnection(接続)入力フィールドにドラッグします。
-
[Click or drag to create(クリックまたはドラッグして作成)]をクリックしてFlow Control Returnカードにフィールドを作成し、そのフィールドにoutputというラベルを付けます。このラベルは、プラットフォームに認識させるために必要です。
このフィールドにはoutput(出力)というラベルが必要です。このフィールドに別のラベルを割り当てると、プラットフォームで認識されなくなります。
-
Mapカードのnew_item_listフィールドをReturnカードのoutputフィールドにドラッグします。
-
[Save(保存)]と[Run(実行)]をクリックします。