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
送信アクションを設定するには:
-
コンテンツブラウザーを開き、アダプティブフォームの ガイドコンテナ コンポーネントを選択します。
-
ガイドコンテナプロパティ アイコンをクリックします。アダプティブフォームコンテナダイアログボックスが開きます。
-
「送信」タブをクリックします。
-
送信アクション ドロップダウンリストから、「REST エンドポイントへの送信」を選択します。
内部サーバーにデータを POST 送信するには、リソースのパスを指定します。データは、リソースのパスに POST されます。例えば、
/content/restEndPoint
のようになります。このような POST リクエストには、送信リクエストの認証情報が使用されます。外部サーバーにデータを POST 送信するには、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
のようになります。他のサーバーにデータを送信するには、絶対パスを使用します。 -
「完了」をクリックします。
ベストプラクティス
- 外部サーバーにデータを POST する場合は、URL がセキュリティで保護されていることを確認し、POST リクエストを匿名で処理して機密情報を保護するパスを設定します。
- フィールドを REST URL 内のパラメーターとして渡すには、すべてのフィールドが異なる要素名を持っている必要があります。これは、異なるパネルに置かれているフィールドにも適用されます。