Flex Gateway新着情報
Governance新着情報
Monitoring API Manager次の例は、form (フォーム) パラメーターが含まれる HTTP 要求を送信してフォームを投稿するように HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースを設定する方法を示しています。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドを使用してフォームを投稿する必要があります。
次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。
Mule フローを作成する手順は、次のとおりです。
[Mule Palette (Mule パレット)] ビューで、[HTTP] の [Listener] ソースを選択してキャンバスにドラッグします。
このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。
[Path (パス)] 項目を submitform
に設定します。
[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内の HTTP の Listener のすべてのインスタンスで使用できるグローバル要素を設定します。
[General (一般)] タブで、次の項目を設定します。
Host (ホスト): localhost
Port (ポート): 8081
[OK] をクリックします。
Choice ルーターコンポーネントを [HTTP] の [Listener] ソースの右にドラッグします。
Choice ルーターにより、条件処理がフローに追加されます。
[Set Payload] コンポーネントを [Choice] ルーターの [When (条件)] 条件ボックスにドラッグします。
[Value (値)] 項目を Sorry #[payload.'firstname'], you’re too young to register.
に設定します。
この式は、要求に含まれている form (フォーム) パラメーターの 1 つ firstname
を参照しています。コネクタで受信したパラメーターは、Mule メッセージペイロード内にマップ内の項目として存在します。
Choice ルーターで [When (条件)] 条件を選択します。
[Expression (式)] 項目を #[server.dateTime.year-18 < payload.'yearborn']
に設定します。
この式は受信 form (フォーム) パラメーターの 1 つ yearborn
を参照しています。
別の [Set Payload] コンポーネントを Choice ルーターの [Default (デフォルト)] 条件ボックスにドラッグします。
[Value (値)] 項目を Registration has been carried out successfully! Welcome #[payload.'firstname'] #[payload.'lastname']!
に設定します。
Mule アプリケーションを保存します。
Package Explorer でプロジェクト名をクリックし、[Run (実行)] > [Run As (別のユーザーとして実行)] > [Mule Application (Mule アプリケーション)] をクリックします。
フォームを投稿するには、curl コマンド http://localhost:8081/submitform を実行します。
投稿本文には、form (フォーム) パラメーター firstname
、lastname
、yearborn
が含まれています。
POST /submitform HTTP/1.1 User-Agent: Mule/3.6 Content-Type: application/x-www-form-urlencoded Content-Length: 32 firstname=Aaron&lastname=Aguilar+Acevedo&yearborn=1999
text
HTTP リスナーは要求を受信すると、次のキー-値ペアのマップ種別のペイロードが含まれる Mule メッセージを作成します。
firstname: Aaron
lastname: Aguilar Acevedo
yearborn: 1999
lastname
パラメーターの HTTP 要求の値はエンコードされていますが (Aguilar+Acevedo)
、Mule メッセージに配置するときにコネクタが値を自動的にデコードします。
フローの残りのどのブロックでも、MEL 式を使用して対応するキーを参照することで、マップペイロードの要素の値に簡単にアクセスできます。
前の例では、yearborn
キーと一致する値が、式 #[payload.'yearborn']
を介して取得されます。この式の値に応じて、2 つの異なるパスのいずれかが使用されます。
最初のパスでは、類似の MEL 式を使用して firstname
キーと一致する値を参照し、ペイロードに登録を拒否するメッセージを設定します。
2 つ目のパスでは登録を受諾し、firstname
と lastname
の値を参照して、名前でユーザーを歓迎します。
この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd">
<http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="RegisterUser">
<http:listener config-ref="HTTP_Listener_Configuration" path="submitform" doc:name="HTTP"/>
<choice doc:name="Choice">
<when expression="#[server.dateTime.year-18 < payload.'yearborn']">
<set-payload value="Sorry #[payload.'firstname'], you're too young to register." doc:name="Too young"/>
</when>
<otherwise>
<set-payload value="Registration has been carried out successfully! Welcome #[payload.'firstname'] #[payload.'lastname']!" doc:name="Success"/>
</otherwise>
</choice>
</flow>
</mule>
xml