[AEM Forms]{class="badge positive" title="AEM Formsに適用)。"}
REST エンドポイントへの送信アクションのアダプティブフォームの設定
REST エンドポイントへの送信アクションを使用して、送信されたデータを REST URL に POST できます。 URL は、内部(フォームがレンダリングされるサーバー)または外部サーバーのどちらのものでも使用できます。
AEM as a Cloud Service では、フォーム送信を処理するための様々な送信アクションが標準で提供されます。 これらのオプションについて詳しくは、アダプティブフォーム送信アクションの記事をご覧ください。
メリット
アダプティブフォームの REST エンドポイントへの送信の送信アクションを設定するメリットは次のとおりです。
- RESTful API を通じて、フォームデータと外部システムおよびサービスをシームレスに統合できます。
- アダプティブフォームからのデータ送信を柔軟に処理し、動的で複雑なデータ構造をサポートできます。
- REST エンドポイント URL のパラメーターへのフォームフィールドの動的マッピングをサポートし、適応可能でカスタマイズ可能なデータ送信を行うことができます。
REST エンドポイントへの送信の送信アクションを設定する steps-to-configure-submit-to-restendpoint-submit-action
基盤コンポーネントに基づくアダプティブフォームの Swagger Open API 仕様に基づいて送信アクションを設定するには:
-
編集用にアダプティブフォームを開き、アダプティブフォームのコンテナプロパティの「送信」セクションに移動します。
-
送信アクションドロップダウンリストから、「REST エンドポイントへの送信」を選択します。
内部サーバーにデータを送信するには、リソースのパスを指定します。データはリソースのパスに投稿されます。例:
/content/restEndPoint。このようなPOST リクエストには、送信リクエストの認証情報が使用されます。
このオプションを使用すると、ターゲット REST エンドポイントを直接入力できます。
外部サーバーにデータを投稿するには、URLを指定します。URLの形式はhttps://host:port/path_to_rest_end_pointです。POST リクエストを匿名で処理するパスを設定していることを確認してください。
上の例で、ユーザーが
textboxに入力した情報は、パラメーターparam1を使用して取得されます。param1を使用して取得されるデータを POST するための構文を以下に示します。String data=request.getParameter("param1");同様に、XML データと添付ファイルの POST に使用するパラメーターは、
dataXmlおよびattachmentsです。例えば、この 2 つのパラメーターをスクリプト中で使用して、REST エンドポイントに送信されたデータを解析できます。 データを格納および解析するための構文を以下に示します。
String data=request.getParameter("dataXml");String att=request.getParameter("attachments");この例では、
dataはXML データを格納し、attは添付データを格納します。
REST エンドポイントに送信送信アクションは、HTTP GET リクエストの一部として、フォームに入力されたデータを、設定された確認ページに送信します。リクエストするフィールドの名前を追加できます。リクエストの形式は次のとおりです。{fieldName}={request parameter name}以下の画像に示されているように、
param1およびparam2が、textbox フィールドおよび numericbox フィールドからコピーされた値を持つパラメーターとして、次のアクションに向けて渡されます。
POST リクエストを有効にすることで、リクエストを POST する URL を指定することもできます。 フォームをホストする AEM サーバーにデータを送信するには、AEM サーバーのルートパスに対応する相対パスを使用します。 例えば、
/content/forms/af/SampleForm.htmlのようになります。 他のサーバーにデータを送信するには、絶対パスを使用します。 -
「完了」をクリックします。
コアコンポーネントに基づくアダプティブフォームの Swagger Open API 仕様に基づいて送信アクションを設定するには:
-
コンテンツブラウザーを開き、アダプティブフォームの ガイドコンテナ コンポーネントを選択します。
-
ガイドコンテナプロパティ
アイコンをクリックします。 アダプティブフォームコンテナダイアログボックスが開きます。 -
「送信」タブをクリックします。
-
送信アクションドロップダウンリストから、「REST エンドポイントへの送信」を選択します。
内部サーバーにデータを POST 送信するには、リソースのパスを指定します。 データは、リソースのパスに POST されます。 例えば、
/content/restEndPointのようになります。 このような POST リクエストには、送信リクエストの認証情報が使用されます。REST エンドポイントを指定するには、次の 2 つのオプションがあります。
accordion URL このオプションを使用すると、ターゲット REST エンドポイントを直接入力できます。
外部サーバーにデータを投稿するには、URLを指定します。URLの形式はhttps://host:port/path_to_rest_end_pointです。POST リクエストを匿名で処理するパスを設定していることを確認してください。
上の例で、ユーザーが
textboxに入力した情報は、パラメーターparam1を使用して取得されます。param1を使用して取得されるデータを POST するための構文を以下に示します。String data=request.getParameter("param1");同様に、XML データと添付ファイルの POST に使用するパラメーターは、
dataXmlおよびattachmentsです。例えば、この 2 つのパラメーターをスクリプト中で使用して、REST エンドポイントに送信されたデータを解析できます。 データを格納および解析するための構文を以下に示します。
String data=request.getParameter("dataXml");String att=request.getParameter("attachments");この例では、
dataが XML データを格納し、attが添付ファイルデータを格納します。REST エンドポイントへの送信送信アクションでは、フォームに入力されたデータを HTTP GET リクエストの一部として設定済みの確認ページに送信します。 リクエストにフィールド名を追加できます。 リクエストのフォーマットを以下に示します。
{fieldName}={request parameter name}以下の画像に示されているように、
param1およびparam2が、textbox フィールドおよび numericbox フィールドからコピーされた値を持つパラメーターとして、次のアクションに向けて渡されます。
POST リクエストを有効にすることで、リクエストを POST する URL を指定することもできます。 フォームをホストする AEM サーバーにデータを送信するには、AEM サーバーのルートパスに対応する相対パスを使用します。 例えば、
/content/forms/af/SampleForm.htmlのようになります。 他のサーバーにデータを送信するには、絶対パスを使用します。accordion 設定 このオプションを使用すると、AEM の設定ブラウザー経由で管理される事前定義済みの HTTP 設定を追加できます。 サービス REST エンドポイント認証タイプおよびコンテンツタイプ用に作成した設定を選択できます。 認証タイプとコンテンツ タイプについて詳しくは、 データソースの設定を参照してください。 同じフォームを各環境の別のエンドポイントにルーティングするには、同じアダプティブフォームに対する環境固有のREST エンドポイントの設定を参照してください。 -
「完了」をクリックします。
ユニバーサルエディターでオーサリングされたアダプティブフォームの Swagger Open API 仕様に基づいて送信アクションを設定するには:
-
アダプティブフォームを編集用に開きます。
-
エディターで フォームプロパティを編集 拡張機能をクリックします。
フォームプロパティダイアログが表示されます。
note NOTE - ユニバーサルエディターインターフェイスに フォームプロパティを編集 アイコンが表示されない場合は、Extension Manager で フォームプロパティを編集 拡張機能を有効にします。
- ユニバーサルエディターで拡張機能を有効または無効にする方法については、Extension Manager 機能のハイライトの記事を参照してください。
-
「送信」タブをクリックし、「REST エンドポイントに送信」送信アクションを選択します。
内部サーバーにデータを POST 送信するには、リソースのパスを指定します。 データは、リソースのパスに POST されます。 例えば、
/content/restEndPointのようになります。 このような POST リクエストには、送信リクエストの認証情報が使用されます。REST エンドポイントを指定するには、次の 2 つのオプションがあります。
accordion URL このオプションを使用すると、ターゲット REST エンドポイントを直接入力できます。
外部サーバーにデータを投稿するには、URLを指定します。URLの形式はhttps://host:port/path_to_rest_end_pointです。POST リクエストを匿名で処理するパスを設定していることを確認してください。
上の例で、ユーザーが
textboxに入力した情報は、パラメーターparam1を使用して取得されます。param1を使用して取得されるデータを POST するための構文を以下に示します。String data=request.getParameter("param1");同様に、XML データと添付ファイルの POST に使用するパラメーターは、
dataXmlおよびattachmentsです。例えば、この 2 つのパラメーターをスクリプト中で使用して、REST エンドポイントに送信されたデータを解析できます。 データを格納および解析するための構文を以下に示します。
String data=request.getParameter("dataXml");String att=request.getParameter("attachments");この例では、
dataが XML データを格納し、attが添付ファイルデータを格納します。REST エンドポイントへの送信送信アクションでは、フォームに入力されたデータを HTTP GET リクエストの一部として設定済みの確認ページに送信します。 リクエストにフィールド名を追加できます。 リクエストのフォーマットを以下に示します。
{fieldName}={request parameter name}以下の画像に示されているように、
param1およびparam2が、textbox フィールドおよび numericbox フィールドからコピーされた値を持つパラメーターとして、次のアクションに向けて渡されます。
POST リクエストを有効にすることで、リクエストを POST する URL を指定することもできます。 フォームをホストする AEM サーバーにデータを送信するには、AEM サーバーのルートパスに対応する相対パスを使用します。 例えば、
/content/forms/af/SampleForm.htmlのようになります。 他のサーバーにデータを送信するには、絶対パスを使用します。accordion 設定 このオプションを使用すると、AEM の設定ブラウザー経由で管理される事前定義済みの HTTP 設定を追加できます。 サービス REST エンドポイント認証タイプおよびコンテンツタイプ用に作成した設定を選択できます。 認証タイプとコンテンツ タイプについて詳しくは、 データソースの設定を参照してください。 同じフォームを各環境の別のエンドポイントにルーティングするには、同じアダプティブフォームに対する環境固有のREST エンドポイントの設定を参照してください。 -
「保存して閉じる」をクリックします。
ベストプラクティス
- 外部サーバーにデータを POST する場合は、URL がセキュリティで保護されていることを確認し、POST リクエストを匿名で処理して機密情報を保護するパスを設定します。
- フィールドを REST URL 内のパラメーターとして渡すには、すべてのフィールドが異なる要素名を持っている必要があります。これは、異なるパネルに置かれているフィールドにも適用されます。
- フォームを変更せずにステージングおよび実稼動環境で異なるREST エンドポイント URLを使用するには、同じアダプティブフォームに対する環境固有のREST エンドポイントの設定を参照してください。