Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerHTTP 用 Anypoint Connector (HTTP Connector) を使用すると、要求をリスンし、フローをトリガーする HTTP サービスと、任意の HTTP サービスと通信できる HTTP クライアントを宣言できます。また、HTTP ベースの API の公開とコンシュームが可能になります。たとえば、APIkit と RESTConnect はどちらも HTTP Connector を内部的に使用して API を操作します。
HTTP Connector は HTTPS (TLS) 接続もサポートしており、簡単な方法で静的リソースとセキュアなサービスを利用できるようにし、クライアント認証スキームを処理します。
互換性と修正された問題については、「HTTP Connector リリースノート」を参照してください。
このコネクタを使用するには、以下に精通している必要があります。
Anypoint Connector
Mule Runtime Engine (Mule)
Mule フローの要素とグローバル要素
Anypoint Studio を使用した Mule アプリケーションの作成方法
アプリケーションを作成するには、Anypoint Platform および Anypoint Studio へのアクセスが必要です。
HTTP サーバーは、ユーザーまたはアプリケーションがコンシュームできるサービスを公開します。このサーバーは要求の形式でデータを受信し、対応する応答を返します。HTTP Listener ソースは、要求を受信したらフローをトリガーし、フローが完了したら応答します。
リスナーソース接続を定義して HTTP サーバーを宣言します。この接続では、要求が受信されるホストとポートを定義します。
次の例は、HTTP Listener ソース接続の XML の例を示しています。
<http:listener-config name="serverConfig">
<http:listener-connection host="localhost" port="8081"/>
</http:listener-config>
接続設定は serverConfig
です。これはポート 8081
で localhost アドレス (IP アドレス 127.0.0.1
) をリスンします。Anypoint Studio でサーバーをセットアップしたら、http://localhost:8081
URL でこのサーバーにアクセスできます。
サーバーを詳細に設定するには、フローを実行するためのリソースパスを指定します。そのパスと一致する要求を受信すると、Mule Runtime Engine (Mule) はフローを実行します。
次の例は、トリガーされたパスに応じて実行される異なるフローの 2 つの HTTP Listener ソースの XML 設定を示しています。
<flow name="hello">
<http:listener path="greet" config-ref="serverConfig"/>
<set-payload value="Hello, world!"/>
</flow>
<flow name="bye">
<http:listener path="exit" config-ref="serverConfig"/>
<set-payload value="Goodbye, world!"/>
</flow>
どちらのリスナーソースも、最初の例で宣言されている接続設定 serverConfig
を使用します。HTTP Listener ソースが Hello, world!
によってトリガーされた場合、コネクタは http://localhost:8081/greet
を返します。ソースが http://localhost:8081/exit
によってトリガーされた場合、コネクタは Goodbye, world!
を返します。
受信した HTTP 要求データは、実行時にフローと共有されます。HTTP 応答はカスタマイズできます。
次の例は、HTTP 応答の本文をカスタマイズする HTTP Listener ソースの XML 設定を示しています。
<flow name="hello">
<http:listener path="greet" config-ref="serverConfig">
<http:response>
<http:body>
#[payload ++ ' I am an HTTP server.']
</http:body>
</http:response>
</http:listener>
<set-payload value="#['Hello, ' ++ (attributes.queryParams.name default 'world') ++ '!']" />
</flow>
HTTP Listener ソースが http://localhost:8081/greet?name=Ana
によってトリガーされた場合、コネクタは Hello, Ana! I am an HTTP server.
を返します。 ソースが http://localhost:8081/greet
によってトリガーされた場合、コネクタは Hello, world! I am an HTTP server.
を返します。
HTTP Listener ソースについての詳細は、「HTTP Listener ソースの設定」を参照してください。
HTTP クライアントを使用すると、要求を HTTP サービスに送信し、その応答を管理できます。HTTP Request 操作は、HTTP 要求を実行し、対応する回答を返します。
HTTP クライアントは宣言しなくてもかまいませんが、宣言すると設定を再利用できます。HTTP クライアントを宣言しない場合、要求を送信するときに URL 全体を毎回指定します。また、さまざまな API リソースに対して複数の要求を実行する場合は、ホストが接続するクライアントを宣言します。
次の例は、HTTP Request 操作の XML 設定を示しています。
<http:request-config name="clientConfig">
<http:request-connection host="localhost" port="8081"/>
</http:request-config>
HTTP 要求設定は clientConfig
です。要求は localhost
のポート 8081
に送信されます。
要求を実行するには、各要求に対象パスを含める必要があります。次の例は、異なるパスが指定された 2 つの HTTP Request 操作の XML 設定を示しています。
<flow name="helloAndBye">
<http:request method="GET" path="greet" config-ref="clientConfig"/>
<logger level="INFO" message="#[payload]"/>
<http:request method="GET" path="exit" config-ref="clientConfig"/>
<logger level="INFO" message="#[payload]"/>
</flow>
要求を greet
と exit
に送信することで、公開されたサービスがコンシュームされます。フローが実行されると、次のように表示されます。
Hello, world! I am an HTTP server.
Goodbye, world!
応答データをフローと共有するように HTTP 要求をカスタマイズできます。次の例は、送信する要求をクエリパラメーターでカスタマイズし、受信する HTTP 応答の状況を使用する、HTTP Request 操作の XML 設定を示しています。
<flow name="fullHello">
<http:request method="GET" path="greet" config-ref="clientConfig">
<http:query-params>
#[{"name" : "HTTP client"}]
</http:query-params>
</http:request>
<logger level="INFO"
message="#['Received a ' ++ attributes.statusCode ++ ' response with body: {' ++ payload ++ '}']"/>
</flow>
フローが実行されると、次のように表示されます。
Received a 200 response with body: {Hello, HTTP client! I am an HTTP server.}
HTTP Request 操作についての詳細は、「HTTP Request 操作の設定」を参照してください。
前提条件を満たしたら、Anypoint Studio でアプリケーションを作成してコネクタを設定できます。