Flex Gateway新着情報
Governance新着情報
Monitoring API Manager次の例は、ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定できるように、HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースを設定する方法を示しています。HTTP 要求の状況コードと説明を表示するには、ブラウザー拡張機能または curl コマンドラインユーティリティを使用します。
この例では、アドレス http://localhost:8081/login/
で要求を受信することを期待しています。これらの要求には user
という名前のクエリパラメーターが含まれている必要があります。このパラメーターの値に応じて、次の 2 つのいずれかが行われます。
パラメーターが user=mule
の場合、次のようになります。
検証操作がパラメーターを true として評価する。
Set Payload トランスフォーマーがメッセージペイロードを成功メッセージに設定する。
HTTP Connector が [Status Code (状況コード)] と [Reason (理由)] の変数を 200 Log in Successful!
として設定する。
パラメーターが user=anythingElse
の場合、次のようになります。
パラメーターの検証操作アサーションが失敗する。
フローでエラーハンドラーがコールされる。
HTTP Connector が [Status Code (状況コード)] と [Reason (理由)] の変数を 404 Requested user does not exist
として設定する
どちらの場合も、要求の応答はレスポンスボディとしては表示されないため、ブラウザーウィンドウで要求を実行した場合は表示されません。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。
次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。
Mule フローを作成する手順は、次のとおりです。
[Mule Palette (Mule パレット)] ビューで、[HTTP] の [Listener] ソースを選択してキャンバスにドラッグします。
[Listener (リスナー)] 設定画面で、必要に応じて [Display Name (表示名)] 項目の値を変更します。
[Path (パス)] を /login
に設定します。
[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内の HTTP Listener のすべてのインスタンスで使用できるグローバル要素を設定します。
[General (一般)] タブで、次の項目を設定します。
Host (ホスト): localhost
Port (ポート): 8081
[OK] をクリックします。
HTTP リスナーの [Responses (応答)] タブの [Response (応答)] セクションで、[Status Code (状況コード)] を 200
、[Reason phrase (理由を示す語句)] を Login Successful
に設定します。
[Error Response (エラー応答)] セクションで、[Status Code (状況コード)] を #[vars.errorStatusCode]
、[Reason phrase (理由を示す語句)] を #[vars.errorReasonPhrase]
に設定します。
[Validation: Is True] 操作を [HTTP] の [Listener] ソースの後にドラッグします。
[General (一般)] タブの [General (一般)] セクションで、ドロップダウンメニューから [Expression (式)] を選択します。user
クエリパラメーターを検証するには、次のコードを [expression (式)] 項目ボックスに追加します。
#[attributes.queryParams.user == 'mule']
text
[Set Payload] トランスフォーマーを [Validation: Is True] 操作の後にドラッグし、[Value (値)] 項目を Log in Successful!
に設定します。
フローの [Error Handling (エラー処理)] セクションで、On Error Propagate コンポーネントを追加します。
On Error Propagate コンポーネントで、2 つの Set Variable トランスフォーマーを追加します。
最初の変数で、[Display Name (表示名)] を Set Status Code
、[Name (名前)] を errorStatusCode
、[Value (値)] を 404
に設定します。
2 番目の変数で、[Display Name (表示名)] を Set Reason Phrase
、[Name (名前)] を errorReasonPhrase
、[Value (値)] を Requested user does not exist
に設定します。
Mule アプリケーションを保存します。
Package Explorer でプロジェクト名をクリックし、[Run (実行)] > [Run As (別のユーザーとして実行)] > [Mule Application (Mule アプリケーション)] をクリックします。
cURL で、URL http://localhost:8081/login?user=mule
をテストします。
ユーザーが有効な場合は結果で 200 Log in Successful!
を返され、有効でない場合は 404 Requested user does not exist
が返されます。
この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:validation="http://www.mulesoft.org/schema/mule/validation"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/validation http://www.mulesoft.org/schema/mule/validation/current/mule-validation.xsd">
<http:listener-config name="HTTP_Listener_config" >
<http:listener-connection host="localhost" port="8081" />
</http:listener-config>
<flow name="customResponseFlow" >
<http:listener doc:name="Listener" path="/login" config-ref="HTTP_Listener_config">
<http:response statusCode="200" reasonPhrase="Login Successful" />
<http:error-response statusCode="#[vars.errorStatusCode]" reasonPhrase="#[vars.errorReasonPhrase]" />
</http:listener>
<validation:is-true expression="#[attributes.queryParams.user == 'mule']"/>
<set-payload value="Log in Successful!" />
<error-handler name="Error_Handler" >
<on-error-propagate enableNotifications="true" logException="true" >
<set-variable value="404" variableName="errorStatusCode"/>
<set-variable value="Requested user does not exist" variableName="errorReasonPhrase"/>
</on-error-propagate>
</error-handler>
</flow>
</mule>
xml