Tip

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

HTTP リクエスト

ワークフロー:HTTP リクエストノードCommunity Edition+

はじめに

別のWebシステムと連携する必要がある場合、HTTPリクエストノードを利用できます。このノードは、実行時に設定に基づいて指定されたアドレスへHTTPリクエストを送信し、JSONまたはapplication/x-www-form-urlencoded形式のデータを送信して、外部システムとのデータ連携を実現します。

Postmanのようなリクエスト送信ツールに慣れている方であれば、HTTPリクエストノードの使い方はすぐに習得できます。これらのツールとは異なり、HTTPリクエストノードの各パラメーターには、現在のワークフローのコンテキスト変数を使用できます。これにより、現在のシステムのビジネス処理と密接に連携させることが可能です。

インストール

内蔵プラグインのため、インストールは不要です。

ノードの作成

ワークフロー設定画面で、フロー内のプラス(「+」)ボタンをクリックして、「HTTPリクエスト」ノードを追加します。

HTTP リクエスト_追加

ノード設定

HTTPリクエストノード_ノード設定

リクエストメソッド

選択可能なHTTPリクエストメソッドは、GETPOSTPUTPATCHDELETEです。

リクエストURL

HTTPサービスのURLです。プロトコル部分(http://またはhttps://)を含める必要があり、https://の使用を推奨します。

リクエストデータ形式

リクエストヘッダーのContent-Typeです。サポートされている形式については、「リクエストボディ」セクションを参照してください。

リクエストヘッダー設定

リクエストヘッダー部分のキーと値のペアです。値にはワークフローのコンテキスト変数を使用できます。

ヒント

Content-Typeリクエストヘッダーはリクエストデータ形式で設定済みのため、ここで入力する必要はありません。上書きしても無効になります。

リクエストパラメーター

リクエストのクエリ部分のキーと値のペアです。値にはワークフローのコンテキスト変数を使用できます。

リクエストボディ

リクエストのボディ部分です。選択されたContent-Typeに応じて、異なる形式がサポートされます。

application/json

標準的なJSON形式のテキストをサポートしています。テキストエディターの右上にある変数ボタンから、ワークフローのコンテキスト変数を挿入できます。

ヒント

変数はJSON文字列内で使用する必要があります。例:{ "a": "{{$context.data.a}}" }

application/x-www-form-urlencoded

キーと値のペア形式です。値にはワークフローのコンテキスト変数を使用でき、変数が含まれる場合は文字列テンプレートとして解析され、最終的な文字列値に連結されます。

application/xml

標準的なXML形式のテキストをサポートしています。テキストエディターの右上にある変数ボタンから、ワークフローのコンテキスト変数を挿入できます。

multipart/form-data v1.8.0+

フォームデータのキーと値のペアをサポートしています。データタイプでファイルオブジェクトを選択すると、ファイルをアップロードできます。ファイルは、コンテキスト内に存在するファイルオブジェクトを介してのみ変数で選択できます(例えば、ファイルコレクションのクエリ結果や、関連するファイルコレクションのリレーションデータなど)。

ヒント

ファイルデータを選択する際は、変数が単一のファイルオブジェクトに対応していることを確認してください(多対多のリレーションシップクエリでは、リレーションシップフィールドの値は配列になるため、ファイルのリストではないことを確認してください)。

タイムアウト設定

リクエストが長時間応答しない場合、タイムアウト設定により、そのリクエストの実行をキャンセルできます。リクエストがタイムアウトすると、現在のワークフローは失敗ステータスで早期に終了します。

失敗を無視

リクエストノードは、標準HTTPステータスコードの200から299(含む)を成功ステータスと見なし、それ以外はすべて失敗と見なします。「失敗したリクエストを無視してワークフローを続行する」オプションがチェックされている場合、リクエストが失敗しても、後続の他のワークフローノードの実行が続行されます。

応答結果の使用

HTTPリクエストの応答結果は、後続のノードで使用できるようにJSONクエリノードで解析できます。

v1.0.0-alpha.16以降のバージョンでは、リクエストノードの応答結果の3つの部分をそれぞれ変数として使用できます。

  • 応答ステータスコード
  • 応答ヘッダー
  • 応答データ

HTTPリクエストノード_応答結果の使用

応答ステータスコードは通常、200403などの数値形式の標準HTTPステータスコードです(具体的な値はサービスプロバイダーによって異なります)。

応答ヘッダー(Response headers)はJSON形式で、JSON形式の応答データを含みます。これらを使用するには、JSONノードで解析する必要があります。

例えば、リクエストノードを使用してクラウドプラットフォームと連携し、通知SMSを送信できます。Alibaba CloudのSMS送信APIを例にとると、設定は以下のようになります(関連パラメーターは、ご自身でドキュメントを参照して調整してください)。

HTTPリクエストノード_ノード設定

ワークフローがこのノードの実行をトリガーすると、設定された内容でAlibaba CloudのSMS APIを呼び出します。リクエストが成功した場合、SMSクラウドサービスを通じてSMSが送信されます。