送信REST Webサービスの設定

送信REST Webサービスの設定

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Alert

早期アクセス

この機能は、すべてのユーザーに対して有効になっているわけではありません。お試しをご希望の場合は、早期アクセスについてメールでサポートチームにお問い合わせください。

アウトバウンドREST Webサービスでは、REST準拠サーバー上のデータの取得、作成、更新、削除を行うHTTPリクエストを送信することで、外部Webサービスと連携できます。この機能は外部APIとシームレスに連携できるよう設計されており、さまざまな用途に柔軟に対応できます。


主な機能

  • GETPOSTPUT、またはDELETEメソッドを使用してREST APIリクエストを送信できます。

  • リクエストには、パラメーターヘッダーボディの内容を含めることができます。

  • 変数を使用して、実行時に値を動的に渡すことができます。

  • APIレスポンスを解析し、ワークフローでさらに利用する特定のデータを抽出できます。

Qntrlでは、ビジネスルールCircuits、およびスタンドアロン関数など、スクリプトに対応している任意の領域からアウトバウンドREST呼び出しを実行できます。

Qntrlから外部システムにアウトバウンドRESTリクエストを設定して送信する手順を説明します。

APIの作成 

QntrlでREST API設定を作成するには、次の手順を実行します。

  1. Qntrlにログインします。

  2. 設定アイコン[設定][WEBサービス][アウトバウンド][REST]をクリックします。

  3. 右上にある[APIを作成]をクリックします。

  4. 左サイドバーにAPIの名前を入力します。

  5. [HTTPメソッド](GET、POST、PUT、DELETE)を選択します。

  6. リクエストの送信先サービスの[API URL](エンドポイント)を入力します

  7. [接続を有効にする](チェックボックス)DRE接続経由でリクエストを送信するには、このチェックボックスを選択します。
    • 選択すると、使用可能な接続を含むドロップダウンが表示されます。
    • 既存の接続を選択するか、新しい接続を作成します。
    • 接続ステータスは色付きのインジケーターで示されます。
      1. は、接続が有効であることを示します。
      2. は、接続が無効であることを示します。

      

  

リクエスト設定 

APIへの入力は、クエリーパラメーターヘッダーボディ形式で渡すことができます。[リクエスト設定]セクションをクリックし、それぞれに必要な詳細を入力します。
Notes
クエリーパラメーター、ヘッダー、ボディの各セクションでは、次の形式で静的値または動的値を使用できます。
  • {{variableName}}は実行時の値に使用します。
  • ${configstore-name}はConfig Storeの値を使用する場合に指定します。
  • 直接入力したリテラル値を使用します。
フィールドを追加するには[+]アイコンを使用し、[–]で必要に応じて削除します。
  1. [クエリーパラメーター]API URLに追加するキーと値のペアを定義します。
    • [キー]:クエリーパラメーター名です。

    • [値]上記の形式に基づいて入力します。

      

  1. [ヘッダー]リクエストに必要なHTTPヘッダーを設定します。

    • [キー]:ヘッダー名(例:Authorization)

    • [値]上記の形式に基づいて入力します。

      

  1. 本文(POSTおよびPUTのみ):形式を選択し、データを入力します。

    • なし:リクエストに本文が不要な場合に選択します。

    • form-data:キーと値を入力します。

    • x-www-form-urlencoded:キーと値を入力します。

    • Raw:複雑なペイロード向けに、テキスト、JSON、XMLに対応しています。

      

  1. 変数値を指定したAPIのテスト:更新アイコンを使用して、利用可能な変数を読み込みます。各変数にサンプル値を入力して、APIリクエストをテストします。保存前に設定を確認できます。リクエストを送信した後、[レスポンス]タブでテストレスポンスを表示できます。

      

Notes
  • テスト機能は検証目的のみで使用され、実際に保存済みの設定には影響しません。
  • リクエスト設定には、最大20件のキーと値のペアを追加できます。
  • レスポンスパーサーで定義できるJSONパスは最大20件です。

RESTリクエストでの変数の使用  

{{variableName}}構文を使用して、リクエスト設定の任意の場所に変数を挿入できます。

  • 静的値:UIで手動入力します([変数値を指定したAPIのテスト]から)。

  • 動的値:スクリプトまたはCodexを使用して実行時に渡されます。

Codexから実行する場合は、変数をJSONオブジェクトとして指定します。

{
'jobId': '1123',
'メール': '
john.doe@swerio.com'
}

これらの値は、クエリーパラメーター、ヘッダー、本文内のプレースホルダー{{jobId}}と{{メール}}を置き換えます。


レスポンスパーサー 

実行後、レスポンスパーサーを使用して、JSONレスポンスから特定のデータを抽出します。

  • Qntrlはレスポンスを自動的にフィルターし、よく使用されるJSONパスを提案します。

  • 候補から、パスの横にある[追加]をクリックし、名前を付けて、[保存]をクリックして保存します。

  • 必要なデータを抽出するために、複数の項目を追加できます。

      

抽出された値は、次回の実行時に適用済みレスポンスとして表示され、元の完全なレスポンスと並べて表示されます。


送信RESTリクエストまたはレスポンスを変更するスクリプト 

事前スクリプト  

カスタムロジックは、事前スクリプトを使用して、APIリクエスト送信前に実行できます。事前スクリプトは、送信REST APIの呼び出しが行われる直前に自動実行されます。この機能は、ビジネスロジックや実行時の条件に基づいて、クエリーパラメーター、ヘッダー、本文、変数値を動的に変更する必要がある場合に特に便利です。

CodeXのサンプル
function beforeSend() {
try {
var queryParams = webservice.outboundREST.getQueryParameter();
console.log('Query parameters ' + queryParams);

// Add a new query parameter.
var timestamp = new Date().toISOString();
webservice.outboundREST.addQueryParameter('timestamp', timestamp);

// Replace variable values.
var variables = {};
variables['user_id'] = '21499000000115251';
webservice.outboundREST.replaceVariableValues(variables);

// Add a custom header
webservice.outboundREST.addHeader('x-tracking-id', 'track-' + Date.now());

console.log('Modified query params --> ' + webservice.outboundREST.getQueryParameter());
console.log('Modified headers --> ' + webservice.outboundREST.getHeader());
} catch (e) {
console.log('Error in beforeSend: ' + e.message);
webservice.outboundREST.setResponseCode(500);
}
}

仕組み  
  • beforeSend()関数は、リクエストが送信される前に自動的に呼び出されます。
  • 外部システムとの連携に必要な動的パラメーター、ヘッダー、値を追加することで、リクエストにアクセスして変更できます。
  • これにより、開発者は送信リクエストをプログラムで調整し、正しいパラメーター、認証値、追跡情報が含まれるようにできます。

事後スクリプト  

事後スクリプトでは、送信REST APIのレスポンスを受信したにカスタムロジックを実行できます。後続の処理に渡す前に最終出力を調整する場合に便利です。
  • レスポンスコード、ヘッダー、データを変更できます
  • 定義済みのレスポンスパーサーがレスポンスに対して自動的に実行され、その出力は適用済みレスポンスとして利用できます。
  • 事後スクリプトで変更されたレスポンスが、最終レスポンスとして取得されます。

サンプルCodeX
function afterSend() {
var appliedResponse = JSON.parse(webservice.outboundREST.getAppliedResponse());
console.log('appliedResponse -->' + appliedResponse);

var variables = JSON.parse(webservice.outboundREST.getVariableValues());
var varJson = {};

varJson['account_id'] = appliedResponse.CRM_Account_ID;
varJson['oauth_token'] = variables.oauth_token;

var crmResponse = OutboundREST.executeByName('GetAccountDetailsCRM', varJson);

if (!crmResponse || Object.keys(crmResponse).length === 0) {
webservice.outboundREST.setResponseCode(500);
webservice.outboundREST.addResponseHeader('crm_error', 'unable to fetch CRM data.');
} else {
appliedResponse['crmResponse'] = crmResponse;
webservice.outboundREST.setAppliedResponse(JSON.stringify(appliedResponse));
console.log('appliedResponse -->' + JSON.stringify(appliedResponse));
}
}



仕組み  
  • afterSend()関数は、送信REST APIリクエストの実行後に自動的にトリガーされます。

  • 最初のAPI応答で受信したデータを使用して、外部CRMシステムから追加の詳細情報を取得します。

  • 最終的な応答には、元のデータと拡張されたCRMデータの両方が含まれます。

これは、生のAPI応答をさらに使用する前に、その応答をクリーンアップ、変換したり、特定の値を抽出したりする必要がある場合に特に便利です。


追加設定の構成 

設定]タブをクリックし、次の詳細を入力します。
  1. [接続タイムアウト]:クライアントとサーバー間の接続確立に許可される最大時間です(初期設定:5秒)。
  2. [スコープ]:スコープまたは権限レベルを定義します。
  3. [SSL証明書の検証]:サーバーでSSL証明書の検証が必要な場合は、このオプションを有効にします。
    1. Qntrlはリクエスト送信時にサーバーのSSL証明書を検証し、安全な通信を確保します。
    2. 証明書は、URL内のホストとポートに基づいて取得されます。
    3. 同じホストとポートに複数の証明書がある場合は、最後に追加された証明書が使用されます。
    4. URLでポートが指定されていない場合、Qntrlは初期設定でポート443(HTTPSの標準)を使用します。
      

リクエストの保存と実行     

設定を保存するには:

  • 保存]をクリックします。APIが左サイドバーに表示されます。

  • APIを実行してテストするには、[送信]をクリックします。これによりAPI設定も保存されます。

  • 実行後、[応答]タブで結果を確認します。

Notes
テスト結果を編集しても、実際の設定は変更されません。再テストする前に、必ず更新内容を保存してください。

Codexでの送信RESTの実行  

Codexを使用して、次の方法で送信REST関数を実行できます。
IDによる実行  

設定済みREST APIの一意のIDを使用して、スクリプトから実行をトリガーします。

構文

OutboundREST.execute('<api_id>', <variables>);
サンプルリクエスト
let requestData = {};
requestData['approvalStatus'] = 'Approved';
OutboundREST.execute(31453000002078039, requestData);


名前による実行  

設定済みのAPI名と変数のキーと値のペアオブジェクトを使用して、REST APIを呼び出します。

構文

OutboundREST.executeByName('api_name', <variables>);
サンプルリクエスト
let requestData = {};
requestData['approvalStatus'] = 'Approved';
OutboundREST.executeByName('TaskApprovalAPI', requestData);
これらの実行では、requestDataオブジェクトで指定された値を使用して、REST API設定内のプレースホルダー(例:{{approvalStatus}})が動的に置き換えられます。

その他の操作 

左パネルで利用可能なオプションを使用して、送信REST APIを管理できます。

  • 有効化または無効化:API名の横にある切り替えスイッチを使用して、APIを有効または無効にします。

  • 名前の変更または削除:APIの横にある[その他の操作(...)]アイコンをクリックし、必要に応じて[名前の変更]または[削除]を選択します。

      






    • Related Articles

    • 受信REST Webサービスの設定

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 早期アクセス この機能はすべてのユーザーに対して有効になっているわけではありません。お試しになりたい場合は、早期アクセスについてサポートチームにメールでお問い合わせください。 QntrlのInbound REST Web ...
    • 受信SOAP Webサービスの設定

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 早期アクセス この機能はすべてのユーザーに対して有効になっているわけではありません。お試しになりたい場合は、メールでサポートチームに早期アクセスをお申し込みください。 受信SOAP ...
    • 送信SOAP Webサービスの設定

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 早期アクセス この機能は、すべてのユーザーに対して有効になっているわけではありません。お試しになりたい場合は、メールでサポートチームに早期アクセスをリクエストしてください。 ...
    • 外部CRM経由のカード作成の自動化

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 シナリオ ある企業では、外部CRM(Zoho ...
    • Webサービスの概要

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 早期アクセス Webサービスはすべてのユーザーに対して有効化されていません。早期アクセスをご希望の場合は、サポートチームにメールでお問い合わせください。 ...