異なるパスへの HTTP 要求の転送の例 - Mule 4

次の例には複数のフローがあり、各フローに、異なるサブパスへの要求をリスンする HTTP 用 Anypoint Connector (HTTP Connector) の ​Listener​ ソースがあります。

  • http://localhost:8081/account​ 宛ての HTTP 要求は最初のフローに転送されます。

  • http://localhost:8081/employee​ 宛ての HTTP 要求は 2 つ目のフローに転送されます。

  • HTTP リスナーで定義されたパスに HTTP 要求が一致しない場合、コネクタは HTTP ​404 Resource Not Found​ エラーを返します。

この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。

次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。

パスへの HTTP 要求のフロー

Mule アプリケーションの作成

Mule フローを作成する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ ビューで、[HTTP] の ​[Listener]​ ソースを選択してキャンバスにドラッグします。
    このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。

  2. Web ブラウザーからアプリケーションを開始するように ​[Path (パス)]​ 項目を ​account​ に設定します。

  3. [Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックして、アプリケーション内の HTTP の ​Listener​ のすべてのインスタンスで使用できるグローバル要素を設定します。

  4. [General (一般)]​ タブで、次の項目を設定します。

    • Host (ホスト)​: localhost

    • Port (ポート)​: 8081

  5. [OK]​ をクリックします。

    HTTP リスナーのグローバル設定
    HTTP リスナーの設定
  6. [Logger]​ コンポーネントを [HTTP] の ​[Listener]​ ソースの右にドラッグします。

  7. 2 番目のフローを作成するには、[HTTP] の別の ​[Listener]​ を最初のフローの下にドラッグします。

  8. [Connector configuration (コネクタ設定)]​ 項目では、[HTTP] の最初の ​[Listener]​ ソースで作成したものと同じ ​HTTP_Listener_config​ 設定を選択します。

  9. [Path (パス)]​ を ​employee​ に設定します。

    HTTP リスナーの設定
  10. [Logger]​ コンポーネントを [HTTP] の 2 番目の ​[Listener]​ ソースの右にドラッグします。

  11. Mule アプリケーションを保存します。

  12. Package Explorer​ でプロジェクト名をクリックし、​[Run (実行)]​ > ​[Run As (別のユーザーとして実行)]​ > ​[Mule Application (Mule アプリケーション)]​ をクリックします。

  13. ブラウザーウィンドウを開き、最初の URL (​http://localhost:8081/account​) を入力します。

  14. 別のブラウザーウィンドウを開き、2 番目の URL (​http://localhost:8081/employee​) を入力します。

  15. ログに、最初のフローに転送された要求と、2 番目のフローに転送された要求がそれぞれ表示されることを確認します。

HTTP 要求を転送するための XML

この例のフローをすばやく 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: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:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
		<http:listener-connection host="localhost" port="8081" />
	</http:listener-config>
	<flow name="Flow1" >
		<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="path"/>
		<logger level="INFO" doc:name="Logger" />
	</flow>
	<flow name="Flow2" >
		<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="employee"/>
		<logger level="INFO" doc:name="Logger" />
	</flow>
</mule>
xml