# mulesoft Http Connector - Full Documentation # Anypoint Code Builder を使用した HTTP Connector の設定 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#creating-new-integration-project)新しいインテグレーションプロジェクトの作成 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#adding-connector-to-project)インテグレーションプロジェクトへのコネクタの追加 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#configuring-http-trigger)フローのトリガーの設定 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#configuring-xml)XML でのコネクタの設定 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$acb-xml-maven-partial.adoc\[\] Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$acb-xml-maven-partial.adoc\[\] Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$acb-xml-maven-partial.adoc\[\] ## [](#adding-components-to-project)プロジェクトへのコンポーネントの追加 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#add-global-config)グローバル設定の追加 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#コネクタの認証の設定)コネクタの認証の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作は、Mule クライアントアプリケーションと、次のいずれかの種別の認証が必要なサービスとの接続をサポートします。 - 基本認証 - ダイジェスト認証 - NTLM 認証 - OAuth2 認証コード許可種別認証 ### [](#http-xml-auth-setup)HTTP XML 認証のセットアップ XML エディターで HTTP Connector の認証を設定します。以下は、HTTP Connector の認証の XML 値です。
認証種別 XML 値

基本認証

<http:authentication >
  <http:basic-authentication
  username="UN" password="PW"/>
</http:authentication>

NTLM Authentication

<http:authentication >
  <http:ntlm-authentication
  domain="DM" workstation="WS"
  username="UN" password="PW" />
</http:authentication>

ダイジェスト認証

<http:authentication >
  <http:digest-authentication
  username="UN" password="PW"/>
</http:authentication>

OAuth 2.0

<http:listener-config name="HTTP_Listener_Configuration"
                      host="0.0.0.0" port="8081" basePath="/github"/>
<http:request-config name="HTTP_Request_Configuration"
                     protocol="HTTPS" host="api.github.com" port="443">
    <http:authentication>
        <oauth:authorization-code-grant-type
        externalCallbackUrl="http://myapp.mycompany.com:8082/callback"
        localAuthorizationUrl="http://localhost:8082/login"
        authorizationUrl="https://github.com/login/oauth/authorize"
        clientId="CLIENT_ID"
        clientSecret="CLIENT_SECRET"
        tokenUrl="https://github.com/login/oauth/access_token" />
    </http:authentication>
</http:request-config>
## [](#configuring-component-attributes)コンポーネント属性の設定 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ### [](#configuring-http-listener)HTTP リスナーの設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ コンポーネントでは、HTTP サーバーをセットアップして、HTTP 要求を受信したらフローをトリガーすることができます。 UI で HTTP の ​**Listener**​ 属性を設定するには、​[「フローのトリガーの設定」](#configuring-http-trigger)​を参照してください。 ### [](#configuring-basic-security-filter)基本セキュリティ検索条件を設定する **Basic security filter**​ コンポーネントは受信した HTTP 要求を認証します。このコンポーネントはインテグレーションフローの ​**Listener**​ コンポーネントの後で使用します。 1. キャンバスで ​**\[Basic security filter\]**​ コンポーネントをクリックします。 2. **\[General (一般)\]**​ タブで、次の属性を設定します。
UI 項目 説明 必須

Realm (レルム)

認証レルム。

はい

Security Provider (セキュリティプロバイダー)

この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​「基本セキュリティ検索条件」​を参照してください。

いいえ

Attributes (属性)

Authorization​ ヘッダーを確認するための HTTP ​Listener​ ソースで定義された HTTP 要求属性。

いいえ

### [](#configure-http-request)HTTP 要求を設定する HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作を使用すると、デフォルトの ​`GET`​ メソッドを使用して外部 HTTP サービスをコンシュームできます。それ以外の場合は、操作が受け入れるメソッドを選択できます。 Anypoint Code Builder UI で HTTP ​**Request**​ の属性を設定する手順は、次のとおりです。 1. キャンバスで ​**\[Request\]**​ コンポーネントをクリックします。 2. **\[General (一般)\]**​ タブで、次の属性を設定します。
UI 項目 説明 必須

Method (メソッド)

すべての HTTP メソッドを許可する (デフォルト) 場合は、この属性を定義しないでください。特定のメソッドを制限するには、許可するすべての HTTP メソッドを ​GET, POST​ のようにカンマ区切りリストとして指定してください。

いいえ

URI Settings URL (URI 設定 URL)

要求の送信先となる URL。

いいえ

URI Settings Path (URI 設定パス)

要求を送信するパス。

いいえ

Request Body (リクエストボディ)

要求応答メッセージの本文。

いいえ

Request Headers (リクエストヘッダー)

応答メッセージに含めるヘッダー。

いいえ

URI パラメーター

要求の作成に使用する URI パラメーター。

いいえ

Query Parameters (クエリパラメーター)

要求に含めるクエリパラメーター。

いいえ

Correlations ID (相関 ID)

要求にアウトバウンド相関 ID を含めるかどうかが定義されます。

いいえ

3. **\[Advanced (詳細)\]**​ タブを選択して、次の属性を設定します。
UI 項目 説明 必須

Output MIME type (出力 MIME タイプ)

このコンポーネントで出力されるペイロードの MIME タイプ。

いいえ

パラメーター

リーダープロパティのキー-値ペアが出力 MIME 属性に追加されます。複数のキーと値のペアが許可されます。

いいえ

Output encoding (出力エンコード)

このコンポーネントで出力されるペイロードのエンコード。

いいえ

Streaming Strategy (ストリーミング戦略)

この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​XML でのストリーミング戦略の設定​ を参照してください。

いいえ

Follow redirects (リダイレクトをフォロー)

リダイレクトをフォローするかどうかを示します。

いいえ

Send body mode (本文送信モード)

要求に本文を含めるかどうかが指定されます。動作が定義済みの許可する HTTP メソッドによって決定されるように指定するには ​[Auto (自動)]​ を選択します (​GET​、​HEAD​、​OPTIONS​ では本文が送信されません)。

いいえ

Request streaming mode (要求ストリーミングモード)

要求がストリーミングを使用して送信されるかどうかが定義されます。

いいえ

Response timeout (応答タイムアウト)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒) が指定されます。

いいえ

Response validator (応答バリデーター)

要求のデフォルトのエラー処理が設定されます。この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​「Success Status Code Validator (成功状況コードバリデーター)」​および​「Failure Status Code Validator (失敗状況コードバリデーター)」​を参照してください。

いいえ

Target Variable (対象変数)

操作の出力が配置される変数の名前。

いいえ

Target Value (対象値)

操作の出力に対して評価される式。この式の出力は対象変数に保存されます。

いいえ

エラーのマッピング

この属性は現在有効ではありません。

いいえ

Reconnection Strategy (再接続戦略)

この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​「Reconnect (再接続)」​、​「Reconnect Forever (繰り返し再接続)」​、および​XML での再接続戦略の設定​を参照してください。

いいえ

### [](#configure-load-static-resource)Load Static Resource の設定 この静的リソースにより、HTTP で使用する静的コンテンツが提供されます。要求パスはリソースの検索に使用されます。 Anypoint Code Builder UI で HTTP ​**Load static resource**​ の属性を設定する手順は、次のとおりです。 1. キャンバスで ​**\[Load static resource\]**​ コンポーネントをクリックします。 2. **\[General (一般)\]**​ タブで、次の属性を設定します。
UI 項目 説明 必須

Resource base path (リソースベースパス)

コンテンツを提供するリソースのベースパス (例えば、​/Users/maxthemule/​ リソース)。

はい

Default file (デフォルトファイル)

ディレクトリが指定されたときに提供するデフォルトファイル。デフォルトは ​index.html​ です。

いいえ

Attributes (属性)

Authorization ヘッダーを確認するための HTTP Listener ソースで定義された HTTP 要求属性。

いいえ

3. **\[Advanced (詳細)\]**​ タブを選択して、次の属性を設定します。
UI 項目 説明 必須

Output MIME type (出力 MIME タイプ)

このコンポーネントで出力されるペイロードの MIME タイプ。

いいえ

パラメーター

リーダープロパティのキー-値ペアが出力 MIME 属性に追加されます。複数のキーと値のペアが許可されます。

いいえ

Output encoding (出力エンコード)

このコンポーネントで出力されるペイロードのエンコード。

いいえ

Target Variable (対象変数)

操作の出力を保存する変数の名前。

いいえ

Target Value (対象値)

操作の出力を評価する式。式の結果は対象変数に保存されます。

いいえ

エラーのマッピング

この属性は現在有効ではありません。

いいえ

## [](#xml-の例)XML の例 ### [](#configuring-reconnection-strategy)XML での再接続戦略の設定 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$acb-xml-examples.adoc\[\] ### [](#configuring-streaming-strategy)XML でのストリーミング戦略の設定 ストリーミング戦略を使用して、Mule によるストリームの処理方法を設定できます。 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$acb-xml-examples.adoc\[\] ## [](#testing-http-listener-connection)HTTP リスナー接続のテスト Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#新しい設定-xml-ファイルの作成)新しい設定 XML ファイルの作成 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#関連情報)関連情報 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] \* [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation) \* [ストリーミング戦略の設定](https://docs.mulesoft.com/mule-runtime/latest/streaming-about) # Anypoint Code Builder を使用した HTTP Connector の設定 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#creating-new-integration-project)新しいインテグレーションプロジェクトの作成 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#adding-connector-to-project)インテグレーションプロジェクトへのコネクタの追加 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#configuring-http-trigger)フローのトリガーの設定 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#configuring-xml)XML でのコネクタの設定 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$acb-xml-maven-partial.adoc\[\] Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$acb-xml-maven-partial.adoc\[\] Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$acb-xml-maven-partial.adoc\[\] ## [](#adding-components-to-project)プロジェクトへのコンポーネントの追加 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#add-global-config)グローバル設定の追加 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#コネクタの認証の設定)コネクタの認証の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作は、Mule クライアントアプリケーションと、次のいずれかの種別の認証が必要なサービスとの接続をサポートします。 - 基本認証 - ダイジェスト認証 - NTLM 認証 - OAuth2 認証コード許可種別認証 ### [](#http-xml-auth-setup)HTTP XML 認証のセットアップ XML エディターで HTTP Connector の認証を設定します。以下は、HTTP Connector の認証の XML 値です。
認証種別 XML 値

基本認証

<http:authentication >
  <http:basic-authentication
  username="UN" password="PW"/>
</http:authentication>

NTLM Authentication

<http:authentication >
  <http:ntlm-authentication
  domain="DM" workstation="WS"
  username="UN" password="PW" />
</http:authentication>

ダイジェスト認証

<http:authentication >
  <http:digest-authentication
  username="UN" password="PW"/>
</http:authentication>

OAuth 2.0

<http:listener-config name="HTTP_Listener_Configuration"
                      host="0.0.0.0" port="8081" basePath="/github"/>
<http:request-config name="HTTP_Request_Configuration"
                     protocol="HTTPS" host="api.github.com" port="443">
    <http:authentication>
        <oauth:authorization-code-grant-type
        externalCallbackUrl="http://myapp.mycompany.com:8082/callback"
        localAuthorizationUrl="http://localhost:8082/login"
        authorizationUrl="https://github.com/login/oauth/authorize"
        clientId="CLIENT_ID"
        clientSecret="CLIENT_SECRET"
        tokenUrl="https://github.com/login/oauth/access_token" />
    </http:authentication>
</http:request-config>
## [](#configuring-component-attributes)コンポーネント属性の設定 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ### [](#configuring-http-listener)HTTP リスナーの設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ コンポーネントでは、HTTP サーバーをセットアップして、HTTP 要求を受信したらフローをトリガーすることができます。 UI で HTTP の ​**Listener**​ 属性を設定するには、​[「フローのトリガーの設定」](#configuring-http-trigger)​を参照してください。 ### [](#configuring-basic-security-filter)基本セキュリティ検索条件を設定する **Basic security filter**​ コンポーネントは受信した HTTP 要求を認証します。このコンポーネントはインテグレーションフローの ​**Listener**​ コンポーネントの後で使用します。 1. キャンバスで ​**\[Basic security filter\]**​ コンポーネントをクリックします。 2. **\[General (一般)\]**​ タブで、次の属性を設定します。
UI 項目 説明 必須

Realm (レルム)

認証レルム。

はい

Security Provider (セキュリティプロバイダー)

この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​「基本セキュリティ検索条件」​を参照してください。

いいえ

Attributes (属性)

Authorization​ ヘッダーを確認するための HTTP ​Listener​ ソースで定義された HTTP 要求属性。

いいえ

### [](#configure-http-request)HTTP 要求を設定する HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作を使用すると、デフォルトの ​`GET`​ メソッドを使用して外部 HTTP サービスをコンシュームできます。それ以外の場合は、操作が受け入れるメソッドを選択できます。 Anypoint Code Builder UI で HTTP ​**Request**​ の属性を設定する手順は、次のとおりです。 1. キャンバスで ​**\[Request\]**​ コンポーネントをクリックします。 2. **\[General (一般)\]**​ タブで、次の属性を設定します。
UI 項目 説明 必須

Method (メソッド)

すべての HTTP メソッドを許可する (デフォルト) 場合は、この属性を定義しないでください。特定のメソッドを制限するには、許可するすべての HTTP メソッドを ​GET, POST​ のようにカンマ区切りリストとして指定してください。

いいえ

URI Settings URL (URI 設定 URL)

要求の送信先となる URL。

いいえ

URI Settings Path (URI 設定パス)

要求を送信するパス。

いいえ

Request Body (リクエストボディ)

要求応答メッセージの本文。

いいえ

Request Headers (リクエストヘッダー)

応答メッセージに含めるヘッダー。

いいえ

URI パラメーター

要求の作成に使用する URI パラメーター。

いいえ

Query Parameters (クエリパラメーター)

要求に含めるクエリパラメーター。

いいえ

Correlations ID (相関 ID)

要求にアウトバウンド相関 ID を含めるかどうかが定義されます。

いいえ

3. **\[Advanced (詳細)\]**​ タブを選択して、次の属性を設定します。
UI 項目 説明 必須

Output MIME type (出力 MIME タイプ)

このコンポーネントで出力されるペイロードの MIME タイプ。

いいえ

パラメーター

リーダープロパティのキー-値ペアが出力 MIME 属性に追加されます。複数のキーと値のペアが許可されます。

いいえ

Output encoding (出力エンコード)

このコンポーネントで出力されるペイロードのエンコード。

いいえ

Streaming Strategy (ストリーミング戦略)

この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​XML でのストリーミング戦略の設定​を参照してください。

いいえ

Follow redirects (リダイレクトをフォロー)

リダイレクトをフォローするかどうかを示します。

いいえ

Send body mode (本文送信モード)

要求に本文を含めるかどうかが指定されます。動作が定義済みの許可する HTTP メソッドによって決定されるように指定するには ​[Auto (自動)]​ を選択します (​GET​、​HEAD​、​OPTIONS​ では本文が送信されません)。

いいえ

Request streaming mode (要求ストリーミングモード)

要求がストリーミングを使用して送信されるかどうかが定義されます。

いいえ

Response timeout (応答タイムアウト)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒) が指定されます。

いいえ

Response validator (応答バリデーター)

要求のデフォルトのエラー処理が設定されます。この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​「Success Status Code Validator (成功状況コードバリデーター)」​および​「Failure Status Code Validator (失敗状況コードバリデーター)」​を参照してください。

いいえ

Target Variable (対象変数)

操作の出力が配置される変数の名前。

いいえ

Target Value (対象値)

操作の出力に対して評価される式。この式の出力は対象変数に保存されます。

いいえ

エラーのマッピング

この属性は現在有効ではありません。

いいえ

Reconnection Strategy (再接続戦略)

この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​「Reconnect (再接続)」​、​「Reconnect Forever (繰り返し再接続)」​、および​XML での再接続戦略の設定​を参照してください。

いいえ

### [](#configure-load-static-resource)Load Static Resource の設定 この静的リソースにより、HTTP で使用する静的コンテンツが提供されます。要求パスはリソースの検索に使用されます。 Anypoint Code Builder UI で HTTP ​**Load static resource**​ の属性を設定する手順は、次のとおりです。 1. キャンバスで ​**\[Load static resource\]**​ コンポーネントをクリックします。 2. **\[General (一般)\]**​ タブで、次の属性を設定します。
UI 項目 説明 必須

Resource base path (リソースベースパス)

コンテンツを提供するリソースのベースパス (例えば、​/Users/maxthemule/​ リソース)。

はい

Default file (デフォルトファイル)

ディレクトリが指定されたときに提供するデフォルトファイル。デフォルトは ​index.html​ です。

いいえ

Attributes (属性)

Authorization ヘッダーを確認するための HTTP Listener ソースで定義された HTTP 要求属性。

いいえ

3. **\[Advanced (詳細)\]**​ タブを選択して、次の属性を設定します。
UI 項目 説明 必須

Output MIME type (出力 MIME タイプ)

このコンポーネントで出力されるペイロードの MIME タイプ。

いいえ

パラメーター

リーダープロパティのキー-値ペアが出力 MIME 属性に追加されます。複数のキーと値のペアが許可されます。

いいえ

Output encoding (出力エンコード)

このコンポーネントで出力されるペイロードのエンコード。

いいえ

Target Variable (対象変数)

操作の出力を保存する変数の名前。

いいえ

Target Value (対象値)

操作の出力を評価する式。式の結果は対象変数に保存されます。

いいえ

エラーのマッピング

この属性は現在有効ではありません。

いいえ

## [](#xml-の例)XML の例 ### [](#configuring-reconnection-strategy)XML での再接続戦略の設定 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$acb-xml-examples.adoc\[\] ### [](#configuring-streaming-strategy)XML でのストリーミング戦略の設定 ストリーミング戦略を使用して、Mule によるストリームの処理方法を設定できます。 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$acb-xml-examples.adoc\[\] ## [](#testing-http-listener-connection)HTTP リスナー接続のテスト Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#新しい設定-xml-ファイルの作成)新しい設定 XML ファイルの作成 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#関連情報)関連情報 Unresolved include directive in modules/ROOT/pages/http-connector-config-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] \* [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation) \* [ストリーミング戦略の設定](https://docs.mulesoft.com/mule-runtime/latest/streaming-about) # Anypoint Studio を使用した HTTP Connector 1.10 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、リアルタイムでアプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「HTTP Connector リファレンス」](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する HTTP Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ で、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ で、検索項目に「​`http`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で、​**\[HTTP\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを設定して、HTTP Connector で使用できます。 - HTTP ​**Listener**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、HTTP ​**Listener**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目の値を指定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP Listener ソースのすべてのインスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、コネクタの接続情報を指定します。 7. **\[TLS\]**​ タブで、必要に応じてコネクタの TLS 情報を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加するときは、そのコネクタで実行するアクションを指定しています。 HTTP Connector の操作を追加するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ で ​**\[HTTP\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の横にドラッグします。 ![HTTP Connector の操作が表示されている Studio の Mule パレット](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-connector-operations.png) 次の操作のいずれかを設定して、HTTP Connector で使用できます。 - **Basic security filter**​ サービスへの要求を保護し、認証します。 - **Load a static resource**​ スクリプトなどのリソースをファイルシステムから Mule アプリケーションに取り込み、HTTP ​**Listener**​ ソースで返せるようにします。 - **Request**​ HTTP サービスをコンシュームします。 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定します。 たとえば、HTTP ​**Listener**​ ソースのグローバル要素を設定するには、次の手順を実行します。 1. Studio キャンバスでソースを選択します。 2. 操作の ​**\[General (一般)\]**​ 設定画面で、​**\[Add (追加)\]**​ アイコン (​![2%](/mulesoft/current/ja-jp/http-connector/1.10/_images/add-16x16.png)​) をクリックして、グローバル要素設定項目にアクセスします。 3. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)`​ または ​`HTTPS` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 4. **\[TLS\]**​ タブで、必要に応じてコネクタの TLS 情報を指定します。 5. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 ![「Host (ホスト)」 項目が 0.0.0.0、「Port (ポート)」 項目が 8081 に設定された、HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-listener-global-element.png) ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、アプリケーションログ出力は Anypoint Studio のコンソールウィンドウに表示されます。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログ出力はオペレーティングシステムのコンソールに表示されます。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログにアクセスすることもできます。ログパスは、アプリケーションログファイル ​`log4j2.xml`​ で設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した HTTP Connector 1.6 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、リアルタイムでアプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「HTTP Connector リファレンス」](https://docs.mulesoft.com/jp/http-connector/1.6/http-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する HTTP Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ で、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ で、検索項目に「​`http`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で、​**\[HTTP\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを設定して、HTTP Connector で使用できます。 - HTTP ​**Listener**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、HTTP ​**Listener**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目の値を指定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP Listener ソースのすべてのインスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、コネクタの接続情報を指定します。 7. **\[TLS\]**​ タブで、必要に応じてコネクタの TLS 情報を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加するときは、そのコネクタで実行するアクションを指定しています。 HTTP Connector の操作を追加するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ で ​**\[HTTP\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の横にドラッグします。 ![HTTP Connector の操作が表示されている Studio の Mule パレット](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-connector-operations.png) 次の操作のいずれかを設定して、HTTP Connector で使用できます。 - **Basic security filter**​ サービスへの要求を保護し、認証します。 - **Load a static resource**​ スクリプトなどのリソースをファイルシステムから Mule アプリケーションに取り込み、HTTP ​**Listener**​ ソースで返せるようにします。 - **Request**​ HTTP サービスをコンシュームします。 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定します。 たとえば、HTTP ​**Listener**​ ソースのグローバル要素を設定するには、次の手順を実行します。 1. Studio キャンバスでソースを選択します。 2. 操作の ​**\[General (一般)\]**​ 設定画面で、​**\[Add (追加)\]**​ アイコン (​![2%](/mulesoft/current/ja-jp/http-connector/1.6/_images/add-16x16.png)​) をクリックして、グローバル要素設定項目にアクセスします。 3. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)`​ または ​`HTTPS` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 4. **\[TLS\]**​ タブで、必要に応じてコネクタの TLS 情報を指定します。 5. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 ![「Host (ホスト)」 項目が 0.0.0.0、「Port (ポート)」 項目が 8081 に設定された、HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-listener-global-element.png) ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、アプリケーションログ出力は Anypoint Studio のコンソールウィンドウに表示されます。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログ出力はオペレーティングシステムのコンソールに表示されます。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログにアクセスすることもできます。ログパスは、アプリケーションログファイル ​`log4j2.xml`​ で設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した HTTP Connector 1.7 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、リアルタイムでアプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「HTTP Connector リファレンス」](https://docs.mulesoft.com/jp/http-connector/1.7/http-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する HTTP Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ で、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ で、検索項目に「​`http`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で、​**\[HTTP\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを設定して、HTTP Connector で使用できます。 - HTTP ​**Listener**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、HTTP ​**Listener**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目の値を指定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP Listener ソースのすべてのインスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、コネクタの接続情報を指定します。 7. **\[TLS\]**​ タブで、必要に応じてコネクタの TLS 情報を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加するときは、そのコネクタで実行するアクションを指定しています。 HTTP Connector の操作を追加するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ で ​**\[HTTP\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の横にドラッグします。 ![HTTP Connector の操作が表示されている Studio の Mule パレット](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-connector-operations.png) 次の操作のいずれかを設定して、HTTP Connector で使用できます。 - **Basic security filter**​ サービスへの要求を保護し、認証します。 - **Load a static resource**​ スクリプトなどのリソースをファイルシステムから Mule アプリケーションに取り込み、HTTP ​**Listener**​ ソースで返せるようにします。 - **Request**​ HTTP サービスをコンシュームします。 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定します。 たとえば、HTTP ​**Listener**​ ソースのグローバル要素を設定するには、次の手順を実行します。 1. Studio キャンバスでソースを選択します。 2. 操作の ​**\[General (一般)\]**​ 設定画面で、​**\[Add (追加)\]**​ アイコン (​![2%](/mulesoft/current/ja-jp/http-connector/1.7/_images/add-16x16.png)​) をクリックして、グローバル要素設定項目にアクセスします。 3. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)`​ または ​`HTTPS` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 4. **\[TLS\]**​ タブで、必要に応じてコネクタの TLS 情報を指定します。 5. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 ![「Host (ホスト)」 項目が 0.0.0.0、「Port (ポート)」 項目が 8081 に設定された、HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-listener-global-element.png) ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、アプリケーションログ出力は Anypoint Studio のコンソールウィンドウに表示されます。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログ出力はオペレーティングシステムのコンソールに表示されます。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログにアクセスすることもできます。ログパスは、アプリケーションログファイル ​`log4j2.xml`​ で設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した HTTP Connector 1.8 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、リアルタイムでアプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「HTTP Connector リファレンス」](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する HTTP Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ で、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ で、検索項目に「​`http`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で、​**\[HTTP\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを設定して、HTTP Connector で使用できます。 - HTTP ​**Listener**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、HTTP ​**Listener**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目の値を指定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP Listener ソースのすべてのインスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、コネクタの接続情報を指定します。 7. **\[TLS\]**​ タブで、必要に応じてコネクタの TLS 情報を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加するときは、そのコネクタで実行するアクションを指定しています。 HTTP Connector の操作を追加するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ で ​**\[HTTP\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の横にドラッグします。 ![HTTP Connector の操作が表示されている Studio の Mule パレット](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-connector-operations.png) 次の操作のいずれかを設定して、HTTP Connector で使用できます。 - **Basic security filter**​ サービスへの要求を保護し、認証します。 - **Load a static resource**​ スクリプトなどのリソースをファイルシステムから Mule アプリケーションに取り込み、HTTP ​**Listener**​ ソースで返せるようにします。 - **Request**​ HTTP サービスをコンシュームします。 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定します。 たとえば、HTTP ​**Listener**​ ソースのグローバル要素を設定するには、次の手順を実行します。 1. Studio キャンバスでソースを選択します。 2. 操作の ​**\[General (一般)\]**​ 設定画面で、​**\[Add (追加)\]**​ アイコン (​![2%](/mulesoft/current/ja-jp/http-connector/1.8/_images/add-16x16.png)​) をクリックして、グローバル要素設定項目にアクセスします。 3. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)`​ または ​`HTTPS` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 4. **\[TLS\]**​ タブで、必要に応じてコネクタの TLS 情報を指定します。 5. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 ![「Host (ホスト)」 項目が 0.0.0.0、「Port (ポート)」 項目が 8081 に設定された、HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-listener-global-element.png) ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、アプリケーションログ出力は Anypoint Studio のコンソールウィンドウに表示されます。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログ出力はオペレーティングシステムのコンソールに表示されます。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログにアクセスすることもできます。ログパスは、アプリケーションログファイル ​`log4j2.xml`​ で設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した HTTP Connector 1.9 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、リアルタイムでアプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「HTTP Connector リファレンス」](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する HTTP Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ で、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ で、検索項目に「​`http`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で、​**\[HTTP\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを設定して、HTTP Connector で使用できます。 - HTTP ​**Listener**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、HTTP ​**Listener**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目の値を指定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP Listener ソースのすべてのインスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、コネクタの接続情報を指定します。 7. **\[TLS\]**​ タブで、必要に応じてコネクタの TLS 情報を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加するときは、そのコネクタで実行するアクションを指定しています。 HTTP Connector の操作を追加するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ で ​**\[HTTP\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の横にドラッグします。 ![HTTP Connector の操作が表示されている Studio の Mule パレット](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-connector-operations.png) 次の操作のいずれかを設定して、HTTP Connector で使用できます。 - **Basic security filter**​ サービスへの要求を保護し、認証します。 - **Load a static resource**​ スクリプトなどのリソースをファイルシステムから Mule アプリケーションに取り込み、HTTP ​**Listener**​ ソースで返せるようにします。 - **Request**​ HTTP サービスをコンシュームします。 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定します。 たとえば、HTTP ​**Listener**​ ソースのグローバル要素を設定するには、次の手順を実行します。 1. Studio キャンバスでソースを選択します。 2. 操作の ​**\[General (一般)\]**​ 設定画面で、​**\[Add (追加)\]**​ アイコン (​![2%](/mulesoft/current/ja-jp/http-connector/1.9/_images/add-16x16.png)​) をクリックして、グローバル要素設定項目にアクセスします。 3. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)`​ または ​`HTTPS` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 4. **\[TLS\]**​ タブで、必要に応じてコネクタの TLS 情報を指定します。 5. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 ![「Host (ホスト)」 項目が 0.0.0.0、「Port (ポート)」 項目が 8081 に設定された、HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-listener-global-element.png) ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、アプリケーションログ出力は Anypoint Studio のコンソールウィンドウに表示されます。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログ出力はオペレーティングシステムのコンソールに表示されます。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログにアクセスすることもできます。ログパスは、アプリケーションログファイル ​`log4j2.xml`​ で設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector HTTP Connector v1.5 HTTP 用 Anypoint Connector (HTTP Connector) を使用すると、要求をリスンし、フローをトリガーする HTTP サービスと、任意の HTTP サービスと通信できる HTTP クライアントを宣言できます。 HTTP Connector によって、HTTP ベースの API の効果的な公開とコンシュームが可能になります。たとえば、FAPIkit と RESTConnect はどちらも HTTP Connector を内部的に使用して API を操作します。 HTTP Connector は HTTPS (TLS) 接続もサポートしており、簡単な方法で静的リソースとセキュアなサービスを利用できるようにし、多くのクライアント認証スキームを処理します。 リリースノート: [HTTP Connector Release Notes](https://docs.mulesoft.com/jp/release-notes/connector/connector-http)​ (HTTP Connector リリースノート) Exchange: [HTTP Connector](https://www.mulesoft.com/exchange/org.mule.connectors/mule-http-connector/) ## [](#pom-ファイル情報)POM ファイル情報 ```xml org.mule.connectors mule-http-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 ## [](#http-サーバー)HTTP サーバー HTTP サーバーは、ユーザーまたはアプリケーションがコンシュームできるサービスを公開します。要求の形式で データを受信し、応答を返します。コネクタの場合、 これは、要求を受信したらフローをトリガーし、フローが完了したら応答することを意味します。これはすべて、コネクタが提供するソースである HTTP リスナーによって処理されます。 HTTP サーバーを宣言するには、まず、HTTP リスナー接続を定義し、要求が受信されるホストとポートを指定します。 次に例を示します。 ```xml ``` この例では、HTTP リスナー設定の名前は ​`serverConfig`​ です。これが、コンピューターの localhost アドレス (IP アドレス ​`127.0.0.1`​) とポート ​`8081`​ 上でリスンします。Anypoint Studio でサーバーをセットアップしたら、​`http://localhost:8081`​ URL でこのサーバーにアクセスできます。 サーバーを詳細に設定してフローを実行するための具体的なリソースパスを選択できます。 そのパスと一致する要求を受信すると、Mule はフローを実行します。 次の例を考えてみましょう。 ```xml ``` これらの例では、2 つの HTTP リスナーが、​`localhost`​ とポート ​`8081`​ 上に HTTP サーバーを作成した、以前の設定 ​`serverConfig`​ を使用するようにセットアップされています。トリガーされるパスに応じて、異なるフローが実行されます。 そのため、​`http://localhost:8081/greet`​ をコールすると ​`Hello, world!`​ が返され、​`http://localhost:8081/exit`​ をコールすると ​`Goodbye, world!`​ が返されます。 受信した要求データは、実行時にフローと共有され、応答は カスタマイズできます。 次の例は、受信 HTTP 要求クエリパラメーターを使用して、HTTP 応答の本文をカスタマイズします。 ```xml #[payload ++ ' I am an HTTP server.'] ``` 上記の例を考慮すると、​`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 リスナー機能の概要全体は、​[HTTP リスナー設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-listener-ref)​を参照してください。 ## [](#http-クライアント)HTTP クライアント HTTP クライアントを使用すると、要求を HTTP サービスに送信し、その応答を処理できます。コネクタの場合、 これはつまり、要求を実行して応答を返すということです。この処理は、 コネクタが提供する操作の HTTP 要求によって実行されます。 HTTP クライアントは宣言しなくてもかまいませんが、設定を再利用できるので 宣言することをお勧めします。HTTP クライアントを宣言しない場合、要求を送信するたびに URL 全体を指定する必要があります。この設定は、簡易な要求では 便利ですが、さまざまな API リソースに対して複数の要求を実行する場合、 最適なのはクライアントを宣言して接続先のホストを指定することです。 ```xml ``` この例では、HTTP 要求設定の名前は ​`clientConfig`​ です。要求を ​`localhost`​ とポート ​`8081`​ (以前設定されたサーバー) に送信します。 要求を実行するために必要なのは、使用する操作ごとに移動先のパスを指定することだけです。 ```xml ``` 前の例では、要求を ​`greet`​ と ​`exit`​ に送信することで、以前公開されたサービスをコンシュームします。フローが実行されると、 次のように表示されます。 ```xml Hello, world! I am an HTTP server. Goodbye, world! ``` 要求はカスタマイズでき、応答データはフローと共有されます。 次の例は、送信する要求をクエリパラメーターでカスタマイズし、受信する HTTP 応答の状況を使用します。 ```xml #[{"name" : "HTTP client"}] ``` このフローが実行されると、 次のように表示されます。 ```xml Received a 200 response with body: {Hello, HTTP client! I am an HTTP server.} ``` HTTP 要求機能の概要全体は、​[HTTP 要求設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-request-ref)​を参照してください。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.10 HTTP 用 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 サーバー HTTP サーバーは、ユーザーまたはアプリケーションがコンシュームできるサービスを公開します。このサーバーは要求の形式でデータを受信し、対応する応答を返します。HTTP ​**Listener**​ ソースは、要求を受信したらフローをトリガーし、フローが完了したら応答します。 リスナーソース接続を定義して HTTP サーバーを宣言します。この接続では、要求が受信されるホストとポートを定義します。 次の例は、HTTP ​**Listener**​ ソース接続の XML の例を示しています。 ```xml ``` 接続設定は ​`serverConfig`​ です。これはポート ​`8081`​ で localhost アドレス (IP アドレス ​`127.0.0.1`​) をリスンします。Anypoint Studio でサーバーをセットアップしたら、​`http://localhost:8081`​ URL でこのサーバーにアクセスできます。 サーバーを詳細に設定するには、フローを実行するためのリソースパスを指定します。そのパスと一致する要求を受信すると、Mule Runtime Engine (Mule) はフローを実行します。 次の例は、トリガーされたパスに応じて実行される異なるフローの 2 つの HTTP ​**Listener**​ ソースの XML 設定を示しています。 ```xml ``` どちらのリスナーソースも、最初の例で宣言されている接続設定 ​`serverConfig`​ を使用します。HTTP ​**Listener**​ ソースが ​`Hello, world!`​ によってトリガーされた場合、コネクタは ​`http://localhost:8081/greet`​ を返します。ソースが ​`http://localhost:8081/exit`​ によってトリガーされた場合、コネクタは ​`Goodbye, world!`​ を返します。 受信した HTTP 要求データは、実行時にフローと共有されます。HTTP 応答はカスタマイズできます。 次の例は、HTTP 応答の本文をカスタマイズする HTTP ​**Listener**​ ソースの XML 設定を示しています。 ```xml #[payload ++ ' I am an HTTP server.'] ``` 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 ソースの設定」](https://docs.mulesoft.com/jp/http-connector/1.10/http-listener-ref)​を参照してください。 ## [](#http-クライアント)HTTP クライアント HTTP クライアントを使用すると、要求を HTTP サービスに送信し、その応答を管理できます。HTTP ​**Request**​ 操作は、HTTP 要求を実行し、対応する回答を返します。 HTTP クライアントは宣言しなくてもかまいませんが、宣言すると設定を再利用できます。HTTP クライアントを宣言しない場合、要求を送信するときに URL 全体を毎回指定します。また、さまざまな API リソースに対して複数の要求を実行する場合は、ホストが接続するクライアントを宣言します。 次の例は、HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml ``` HTTP 要求設定は ​`clientConfig`​ です。要求は ​`localhost`​ のポート ​`8081`​ に送信されます。 要求を実行するには、各要求に対象パスを含める必要があります。次の例は、異なるパスが指定された 2 つの HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml ``` 要求を ​`greet`​ と ​`exit`​ に送信することで、公開されたサービスがコンシュームされます。フローが実行されると、次のように表示されます。 ```xml Hello, world! I am an HTTP server. Goodbye, world! ``` 応答データをフローと共有するように HTTP 要求をカスタマイズできます。次の例は、送信する要求をクエリパラメーターでカスタマイズし、受信する HTTP 応答の状況を使用する、HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml #[{"name" : "HTTP client"}] ``` フローが実行されると、次のように表示されます。 ```xml Received a 200 response with body: {Hello, HTTP client! I am an HTTP server.} ``` HTTP ​**Request**​ 操作についての詳細は、​[「HTTP Request 操作の設定」](https://docs.mulesoft.com/jp/http-connector/1.10/http-request-ref)​を参照してください。 ## [](#次のステップ)次のステップ 前提条件を満たしたら、​[Anypoint Studio](https://docs.mulesoft.com/jp/http-connector/1.10/http-connector-studio)​ でアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.10 - XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 - Mule Runtime Engine (Mule) アプリケーションを (Anypoint Studio の XML エディターまたはテキストエディターから) 手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションからコネクタにアクセスできます。 - Studio でコネクタを追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力し、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​`mule`​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd ``` 次の例は、XML 内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします。 ```xml org.mule.connectors mule-http-connector x.x.x mule-plugin ``` ``​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`http`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/http-connector/1.10/http-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.10 リファレンス HTTP 用 Anypoint Connector (HTTP Connector) を使用して、HTTP 要求を処理および実行します。このクラスは、拡張定義としてのみ機能します。このコネクタの設定は、サーバー機能 (​``​) とクライアント機能 (​``​) に分けられます。 リリースノート: [HTTP Connector Release Notes](https://docs.mulesoft.com/jp/release-notes/connector/connector-http)​ (HTTP Connector リリースノート) ## [](#設定)設定 * * * ### [](#listenerConfig)リスナー設定 HttpListener の設定要素。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

Listener Interceptor (リスナーインターセプター)

要求および応答イベントに適用されるリスナーインターセプター。

Reject Invalid Transfer Encoding (無効な転送エンコードを拒否)

Boolean (ブール)

true​ の場合、Transfer-Encoding ヘッダーの値が無効の要求は拒否され、400 Bad Request (400 不正な要求) メッセージが表示されます。有効な値は ​chunked​、​deflate​、​compress​、​identity​、​gzip​ です。これらの値は、​RFC-7230​ と ​RFC-2616​ で定義されます。

false

#### [](#接続種別)接続種別 ##### [](#listenerConfig_listener)リスナー HttpListener の接続プロバイダーで、HttpServer インスタンスの作成を処理します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。プロトコルとして HTTPS が設定されている場合、ユーザーはこの listener-config の tls:context 子要素で少なくともキーストアを設定する必要があります。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

要求が受信されるポート。

x

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。タイムアウトの発生直前に既存の接続で要求を送信した場合の Remotely Closed (リモート終了) 例外を回避するために、リスナーのデフォルトの接続アイドルタイムアウトはリクエスターのデフォルトの接続アイドルタイムアウトより大きくなります。

40000

Read Timeout (読み取りタイムアウト)

Number (数値)

リスナーがメッセージの受信中に待機する必要がある最大時間 (ミリ秒単位)。

30000

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連付けられたソース)関連付けられたソース - [Listener](#listener) - [ポーリング入力元](#pollingSource) * * * ### [](#requestConfig)要求設定 HTTP 要求の設定要素。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、対象になった瞬間にプラットフォームでインスタンスの有効期限が切れるという意味ではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

/

Follow Redirects (リダイレクトをフォロー)

Boolean

リダイレクトをフォローするかどうかを示します。デフォルト値は true です。

true

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。AUTO (自動) の場合、メソッドに応じて異なります (GET、HEAD、および OPTIONS では本文は送信されません)。

AUTO

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、要求はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Enable Cookies (Cookie を有効化)

Boolean (ブール)

true の場合、HTTP 応答で受信した Cookie は保存され、後続の HTTP 要求で送信されます。

http:request-config​ 要素で cookie が有効になっている場合、​request-config​ のインスタンスごとに 1 つの ​CookieManager​ が作成されます。Mule アプリケーションの複数の ​http:request​ 要素で同じ ​http:request-config​ を参照している場合、そのすべてが同じ ​CookieManager​ インスタンスを共有します。

動的設定がある場合、パラメーター化ごとに新しい ​http:request-config​ インスタンスが作成されます。このため、各パラメーター化に独自の ​CookieManager​ インスタンスがあります。詳細は、mule-sdk::static-dynamic-configs.adoc#dynamic-configuration-lifecycle を参照してください。

true

Default Headers (デフォルトヘッダー)

メッセージに含まれる必要があるデフォルト HTTP ヘッダー。

クエリパラメーター

応答に含まれる必要があるデフォルトクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

メッセージをパブリッシュするときに相関 id を指定するかどうか。操作レベルで指定されるカスタム相関 id と、現在のイベントから引用されるデフォルト相関 id の両方に適用されます。

AUTO

Preserve Headers Case (ヘッダーの文字を保持)

Boolean (ブール)

デフォルトでは、ヘッダーキーは内部的に小文字で保存されます。これは、ヘッダー処理のパフォーマンス向上が目的で、RFC の仕様どおりに正しく機能します。<p> サーバーが特定の文字のヘッダーを期待している場合、このフラグを true に設定してヘッダーキーの文字を保持できます。

false

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒)。この値が存在しない場合、コネクタは Mule 設定のデフォルトの応答タイムアウト (10000) を使用します。

10000

Response Validator (応答バリデーター)

応答のデフォルトのエラー処理を設定します。

#### [](#接続種別-2)接続種別 ##### [](#requestConfig_request)Request HTTP 要求の接続プロバイダーで、HttpExtensionClient インスタンスの作成を処理します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Proxy Config (プロキシ設定)

次のいずれかになります。

プロキシ経由のアウトバウンド接続の再利用可能な設定要素。プロキシ要素では、必ずホスト名およびポート属性を定義し、必要に応じてユーザー名とパスワードを定義できます。

Authentication (認証)

HTTP 要求で使用する認証方式。

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。HTTPS がプロトコルとして設定された場合、この listener-config の ​tls:context​ 子要素を定義することで、ユーザーが tls/SSL 設定をカスタマイズできます。​tls:context​ が定義されていない場合、デフォルトの JVM 証明書が通信の確立に使用されます。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

Port (ポート)

Number (数値)

要求の送信先となるポート。プロトコル属性が HTTP (デフォルト) の場合、デフォルト値は 80、プロトコル属性が HTTPS の場合、デフォルト値は 443 です。

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Max Connections (最大接続数)

Number (数値)

同時に開いた状態にできるアウトバウンド接続の最大数。デフォルトでは、接続数は無制限です。最大接続数の値を設定するとメモリ使用量を制限できますが、スループットが低下する可能性があります。

-1

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。

30000

Stream Response (応答のストリーミング)

Boolean (ブール)

受信応答をストリーミングする必要があるかどうか。つまり、すべてのヘッダーが解析されたらすぐに処理を続行し、本文は到着するとストリーミングされます。設定されたバッファサイズによっては、メモリに収まらず、容量が空くまで処理が停止する可能性があるため、有効になっている場合は徐々に応答を読み取る必要があります。

false

Response Buffer Size (応答バッファサイズ)

Number (数値)

HTTP 応答が保存されるバッファの領域 (バイト)。

1024

Client Socket Properties (クライアントソケットのプロパティ)

クライアントソケットのプロパティが設定されます。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連操作)関連操作 - [Request](#request) ## [](#操作)操作 ### [](#request)Request `` HTTP サービスをコンシュームします。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

GET

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Path (パス)

String (文字列)

要求の送信先となるパス。

URL

String (文字列)

要求を送信する URL。

Follow Redirects (リダイレクトをフォロー)

Boolean

リダイレクトをフォローするかどうかを示します。

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒)。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

URI パラメーター

Object (オブジェクト)

要求の作成に使用する必要がある URI パラメーター。

クエリパラメーター

Object (オブジェクト)

要求に含まれる必要があるクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Correlation Id (相関 ID)

String (文字列)

カスタム相関 ID の設定を許可します。

Response Validator (応答バリデーター)

応答のエラー処理を設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。この項目はこの操作では使用しません。

#### [](#出力)出力

Type (型)

Any (任意)

Attributes Type (属性型)

#### [](#設定-2)設定。 - [要求設定](#requestConfig) #### [](#スロー)スロー - HTTP:BAD\_REQUEST - HTTP:CLIENT\_SECURITY - HTTP:CONNECTIVITY - HTTP:FORBIDDEN - HTTP:INTERNAL\_SERVER\_ERROR - HTTP:METHOD\_NOT\_ALLOWED - HTTP:NOT\_ACCEPTABLE - HTTP:NOT\_FOUND - HTTP:PARSING - HTTP:RETRY\_EXHAUSTED - HTTP:SECURITY - HTTP:SERVICE\_UNAVAILABLE - HTTP:TIMEOUT - HTTP:TOO\_MANY\_REQUESTS - HTTP:UNAUTHORIZED - HTTP:UNSUPPORTED\_MEDIA\_TYPE - HTTP:BAD\_GATEWAY - HTTP:GATEWAY\_TIMEOUT ### [](#basicSecurityFilter)Basic Security Filter `` 受信した HTTP 要求を認証します。リスナーコンポーネントの後に使用する必要があります。 #### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Realm (レルム)

String (文字列)

認証レルム。

x

セキュリティプロバイダー

Array of String (文字列の配列)

認証に使用する代理セキュリティプロバイダー。設定内に複数のセキュリティマネージャーが定義されている場合に使用します。

Attributes (属性)

Authorization​ ヘッダーを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

#### [](#スロー-2)スロー - HTTP:BASIC\_AUTHENTICATION - MULE:SERVER\_SECURITY ### [](#loadStaticResource)Load Static Resource `` この静的リソースにより、HTTP で使用する静的コンテンツが提供されます。要求パスはリソースの検索に使用されます。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Resource Base Path (リソースベースパス)

String (文字列)

ドキュメントの提供元であるリソースベース。例: /Users/maxthemule/resources

x

Default File (デフォルトファイル)

String (文字列)

ディレクトリが指定されたときに提供するデフォルトファイル。デフォルト値は ​index.html​ です。

index.html

Attributes (属性)

必須リソースを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力を評価する式。式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-2)出力

Type (型)

Any (任意)

Attributes Type (属性型)

Any (任意)

#### [](#スロー-3)スロー - HTTP:NOT\_FOUND ## [](#ソース)ソース ### [](#listener)Listener `` HTTP 要求のリスナーを表します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

HTTP リスナー設定で指定されたパスからの相対パス。

x

Allowed Methods (許可されるメソッド)

String (文字列)

このリスナーで許可される HTTP メソッドのカンマ区切りリスト。すべてのメソッドを許可する場合は、この属性を定義しないでください。

Response Streaming Mode (応答ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

応答をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、応答はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

Status Code (状況コード)

Number (数値)

応答に含まれる必要がある HTTP 状況コード。

Reason Phrase (理由を示す語句)

String (文字列)

応答に含まれる必要がある HTTP の理由を示す語句。

#### [](#出力-3)出力

Type (型)

Any (任意)

Attributes Type (属性型)

#### [](#設定-3)設定。 - [リスナー設定](#listenerConfig) ### [](#pollingSource)ポーリング入力元 ``​ 指定された HTTP サーバーに対して、スケジュールされた HTTP 要求を実行するイベントソース。 #### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

HTTP Request 操作設定で指定されたパスからの相対パス。

Method (メソッド)

String (文字列)

HTTP 要求メソッド

GET

Response Validator (応答バリデーター)

接続テストの応答に適用される検証。

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの Mule インスタンスの実行時、このソースをプライマリノード上でのみ実行するかどうかを決定します。

On Capacity Overload (容量過負荷時)

Enumeration (列挙)。次のいずれかになります。 DROP WAIT ** FAIL

フローで管理可能な容量を超えたメッセージを受信した場合に Mule が適用する戦略。

WAIT

Scheduling Strategy (スケジュール戦略)

scheduling-strategy

ポーリングをトリガーするスケジューラーを設定します。

x

Streaming Strategy (ストリーミング戦略)

Mule によるストリームの処理方法を設定します。反復可能ストリームは、デフォルトの動作です。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシーを定義します。

Body (本文)

String (文字列)

応答メッセージの本文。

Headers (ヘッダー)

pollingRequestHeader の配列

メッセージに含まれる HTTP ヘッダー。

URI パラメーター

pollingRequestUriParam の配列

要求の作成に使用する URI パラメーター。

Query Parameters (クエリパラメーター)

pollingRequestQueryParam の配列

要求に含まれるクエリパラメーター。

Split Expression (分割式)

String (文字列)

応答に適用される分割式。

Watermark Expression (ウォーターマーク式)

String (文字列)

(分割) 応答からウォーターマークを取得する式。

Id Expression (ID 式)

String (文字列)

各 (分割) 項目から ID を取得する式。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-4)出力

Type (型)

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合)次の設定の場合 - [要求設定](#requestConfig) ## [](#型)型 ### [](#Tls)TLS 設定の HTTPS を有効にする TLS 設定要素への参照。
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。暗号化スイートには IANA (Internet Assigned Numbers Authority) 命名規則を使用します。 OpenSSL - IANA マッピング​を参照してください。​「TLS の設定例」​も参照してください。

Trust Store (トラストストア)

TLS 用のトラストストアを設定します。

Key Store (キーストア)

TLS プロトコル用のキーストアを設定します。生成したキーストアには、非公開キーと公開証明書が格納されます。

Revocation Check (取り消し確認)

TLS の取り消し確認を設定します。

### [](#TrustStore)トラストストア TLS 用のトラストストアを設定します。
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が行われず、攻撃に対して接続が脆弱になります。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア) TLS プロトコル用のキーストアを設定します。生成したキーストアには、非公開キーと公開証明書が格納されます。
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能であれば、現在のクラスパスとファイルシステムに対して解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、ファイルにある最初のキーがデフォルトで使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認) TLS 証明書の標準取り消し確認を設定します。
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom OCSP Responder (カスタム OCSP レスポンダー) 証明書の取り消し確認のカスタム OCSP レスポンダーを設定します。
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)CRL File (CRL ファイル) 証明書失効リスト (CRL) ファイルの場所を指定します。
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続) 操作の再接続戦略を設定します。
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続) 標準再接続戦略を設定し、再接続の頻度と、コネクタソースまたは操作で実行できる再接続の試行回数を指定します。
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続) Mule アプリケーションが実行されている間はコネクタソースや操作によって指定された頻度で再接続が試行される Forever 再接続戦略を設定します。
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#CorsInterceptorWrapper)CORS Interceptor Wrapper (Cors インターセプターラッパー)
項目 型 説明 デフォルト値 必須

Cors Interceptor (Cors インターセプター)

要求が CORS 仕様に準拠していることを検証し、応答に対して適宜アクションを実行するインターセプター。

x

### [](#CorsListenerInterceptor)CORS Listener Interceptor (Cors リスナーインターセプター)
項目 型 説明 デフォルト値 必須

Allow Credentials (ログイン情報を許可)

Boolean (ブール)

false

Origins (発生源)

Array (配列)。次のいずれかになります。

x

### [](#HttpRequestAttributes)HTTP Request Attributes (HTTP 要求属性) メッセージ属性の使用方法についての詳細は、​[メッセージ属性に関する](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​ドキュメントを参照してください。
項目 型 説明 デフォルト値 必須

Listener Path (リスナーパス)

String (文字列)

要求が受信された場所のフルパス。

x

Raw Request Path (未加工要求パス)

String (文字列)

受信時にエンコードされる、要求されたフルパス。 1.5.0 以降

x

相対パス

String (文字列)

ベースパスを考慮しない、要求が受信された場所のパス。

x

Masked Request Path (マスクされた要求パス)

String (文字列)

リスナーパスをマスクし、差異を取り込んで算出されたパス。 これは、null の場合にのみ計算されます。

1.4.0 以降

x

Version (バージョン)

String (文字列)

要求の HTTP バージョン。

x

Schema (スキーマ)

String (文字列)

要求の HTTP スキーム。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

x

Request Uri (要求 URI)

String (文字列)

要求の完全 URI。

x

Raw Request Uri (未加工要求 URI)

String (文字列)

受信時にエンコードされる、要求のフル URI。 1.5.0 以降

x

Query String (クエリ文字列)

String (文字列)

要求のクエリ文字列。

x

Local Address (ローカルアドレス)

String (文字列)

サーバーからのローカルホストアドレス。

x

Remote Address (リモートアドレス)

String (文字列)

送信者からのリモートホストアドレス。

x

Client Certificate (クライアント証明書)

Any (任意)

クライアント証明書 (双方向 TLS が有効な場合)。

Query Params (クエリパラメーター)

Object (オブジェクト)

解析した文字列からビルドしたクエリパラメーターのマッピング。

x

Uri Params (URI パラメーター)

Object (オブジェクト)

要求パスから抽出した URI パラメーター。

x

Request Path (要求パス)

String (文字列)

要求されたフルパス。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。

x

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム) データが最大バッファサイズを超えた場合に要求が失敗するメモリ内ストリーミング戦略を設定します。ユースケースで最適なバッファサイズは、必ずパフォーマンステストを実施して決めてください。
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

これは、ストリームをコンシュームし、ストリームへのランダムアクセスを提供する目的で割り当てられるメモリの容量です。ストリームに含まれているデータがこのバッファに適合できる量を超えている場合、bufferSizeIncrement 属性に従ってバッファが拡張され、上限は maxInMemorySize となります。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、どれだけ拡張するか。値を 0 以下に設定すると、バッファが拡張されません。つまり、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

これは、バッファで使用できるメモリの最大量。これを超えると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム) 反復可能なファイルストアストリーミング戦略を設定します。この戦略では、ストリームコンテンツの一部がメモリ内に格納されます。ストリームのコンテンツが、設定されたバッファサイズよりも大きい場合、Mule はバッファのコンテンツをディスクにバックアップしてからメモリをクリアします。
項目 型 説明 デフォルト値 必須

Max In Memory Size (最大メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用できる最大メモリを定義します。これを超えると、コンテンツはディスクにバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー) エラーを生成する要求を実行するための再配信ポリシーを設定します。再配信ポリシーは、フロー内のあらゆる提供元に追加できます。
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

正常に処理されずにプロセス失敗メッセージがトリガーされるまでにメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

ObjectStore

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#TcpClientSocketProperties)TCP クライアントソケットのプロパティ クライアントソケットのプロパティが設定されます。
項目 型 説明 デフォルト値 必須

Connection Timeout (接続タイムアウト)

Number (数値)

タイムアウトで失敗する前に、リモートサーバーへの接続中に待機する時間。設定されたリクエスターホストが複数の IP アドレスに解決される場合、ホストはそれぞれの IP アドレスへの接続を試みます。 そのため、すべての接続がタイムアウトになる場合、解決された IP アドレスの数だけグローバル接続タイムアウトの時間が長くなります。

30000

Send Tcp No Delay (遅延なく TCP を送信)

Boolean (ブール)

効率を高めるために送信データを収集して直ちにデータを送信するかどうかを示します。

true

Linger (延長)

Number (数値)

残りのデータが正しく送信されるように、ソケットが閉じるまでにかかるミリ秒単位の時間。

Keep Alive (キープアライブ)

Boolean (ブール)

ソケット接続が長時間未使用のまま開いており接続を使用できない場合にソケット接続を閉じることができるかどうかを示します。

false

Fail On Unresolved Host (ホストを解決できない場合は失敗)

Boolean (ブール)

作成時のソケットがエンドポイントに設定されているホストを解決できない場合に失敗するかどうかを示します。

true

Send Buffer Size (送信バッファサイズ)

Number (数値)

データ送信時のバイト単位のバッファのサイズ。

Receive Buffer Size (受信バッファサイズ)

Number (数値)

データ受信時のバイト単位のバッファのサイズ。

Client Timeout (クライアントタイムアウト)

Number (数値)

ブロック操作で失敗するまでにソケットが待機するミリ秒単位の時間。

Reuse Address (アドレスの再利用)

Boolean (ブール)

ポートをバインドしようとするときに、設定済みのポートを再利用する (​true​) か失敗にする (​false​) かを示します。

true

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー) 動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。インスタンスが期限切れとみなされた瞬間にインスタンスが期限切れになるという意味ではありません。必要に応じて、インスタンスがパージされます。
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maxIdleTime 属性の時間単位

### [](#defaultHeader)Default Header (デフォルトヘッダー) メッセージに含まれる必要があるデフォルト HTTP ヘッダー。
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

デフォルト HTTP ヘッダーのキー。

x

Value (値)

String (文字列)

デフォルト HTTP ヘッダーの値。

x

### [](#QueryParam)Query Param (クエリパラメーター) 応答に含まれる必要があるデフォルトクエリパラメーター。
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

デフォルトクエリパラメーターのキー名。

x

Value (値)

String (文字列)

デフォルトクエリパラメーターの値。

x

### [](#HttpResponseAttributes)HTTP Response Attributes (HTTP 応答属性) メッセージ属性の使用方法についての詳細は、​[メッセージ属性に関する](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​ドキュメントを参照してください。
項目 型 説明 デフォルト値 必須

Status Code (状況コード)

Number (数値)

応答の HTTP 状況コード。

x

Reason Phrase (理由を示す語句)

String (文字列)

応答の HTTP の理由を示す語句。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。

x

### [](#BasicAuthentication)基本認証 基本認証メソッドを使用すると、HTTP ユーザーエージェントは HTTP 要求を行うときにユーザー名とパスワードを指定できます。
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#DigestAuthentication)ダイジェスト認証 ダイジェスト認証メソッドを使用すると、Web サーバーはユーザーの Web ブラウザーを介してユーザーログイン情報を検証できます。
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#NtlmAuthentication)NTLM 認証 NT LAN Manager (NTLM) 認証で、以前の Microsoft 製品である Microsoft LAN Manager (LANMAN) の認証プロトコルが置き換えられました。
項目 型 説明 デフォルト値 必須

Domain (ドメイン)

String (文字列)

認証するドメイン。

Workstation (ワークステーション)

String (文字列)

認証するワークステーション。

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#proxy)Proxy (プロキシ) プロキシ経由のアウトバウンド接続の再利用可能な設定要素。プロキシ要素では、必ずホスト名およびポート属性を定義し、必要に応じてユーザー名とパスワードを定義できます。
項目 型 説明 デフォルト値 必須

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#ntlm-proxy)NTLM Proxy (NTLM プロキシ)
項目 型 説明 デフォルト値 必須

Ntlm Domain (NTLM ドメイン)

String (文字列)

プロキシに対して認証するドメイン。

x

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#SuccessStatusCodeValidator)Success Status Code Validator (成功状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#FailureStatusCodeValidator)Failure Status Code Validator (失敗状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#origin)Origin (発生源)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

ブラウザーがリソースを読み込める発生元の URL。

x

Access Control Max Age (アクセス制御最大保持期間)

Number (数値)

プリフライト要求の結果をキャッシュする秒単位の時間。

x

Allowed Methods (許可されるメソッド)

Method (メソッド)​ の配列

発生元からリソースにアクセスするときに許可される HTTP メソッドを示します。

Allowed Headers (許可されるヘッダー)

Header (ヘッダー)​ の配列

プリフライト要求で、実際の要求中に使用する HTTP ヘッダーを示します。

Expose Headers (ヘッダーを公開)

Header (ヘッダー)​ の配列

要求で公開されるレスポンスヘッダー。

### [](#Method)Method (メソッド) HTTP メソッド名。
項目 型 説明 デフォルト値 必須

Method Name (メソッド名)

String (文字列)

HTTP メソッド名。

x

### [](#Header)Header (ヘッダー) HTTP ヘッダー名。
項目 型 説明 デフォルト値 必須

Header Name (ヘッダー名)

String (文字列)

HTTP ヘッダー名。

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.6 HTTP 用 Anypoint Connector (HTTP Connector) を使用すると、要求をリスンし、フローをトリガーする HTTP サービスと、任意の HTTP サービスと通信できる HTTP クライアントを宣言できます。また、HTTP ベースの API の公開とコンシュームが可能になります。たとえば、FAPIkit と 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 サーバー HTTP サーバーは、ユーザーまたはアプリケーションがコンシュームできるサービスを公開します。このサーバーは要求の形式でデータを受信し、対応する応答を返します。HTTP ​**Listener**​ ソースは、要求を受信したらフローをトリガーし、フローが完了したら応答します。 リスナーソース接続を定義して HTTP サーバーを宣言します。この接続では、要求が受信されるホストとポートを定義します。 次の例は、HTTP ​**Listener**​ ソース接続の XML の例を示しています。 ```xml ``` 接続設定は ​`serverConfig`​ です。これはポート ​`8081`​ で localhost アドレス (IP アドレス ​`127.0.0.1`​) をリスンします。Anypoint Studio でサーバーをセットアップしたら、​`http://localhost:8081`​ URL でこのサーバーにアクセスできます。 サーバーを詳細に設定するには、フローを実行するためのリソースパスを指定します。そのパスと一致する要求を受信すると、Mule Runtime Engine (Mule) はフローを実行します。 次の例は、トリガーされたパスに応じて実行される異なるフローの 2 つの HTTP ​**Listener**​ ソースの XML 設定を示しています。 ```xml ``` どちらのリスナーソースも、最初の例で宣言されている接続設定 ​`serverConfig`​ を使用します。HTTP ​**Listener**​ ソースが ​`Hello, world!`​ によってトリガーされた場合、コネクタは ​`http://localhost:8081/greet`​ を返します。ソースが ​`http://localhost:8081/exit`​ によってトリガーされた場合、コネクタは ​`Goodbye, world!`​ を返します。 受信した HTTP 要求データは、実行時にフローと共有されます。HTTP 応答はカスタマイズできます。 次の例は、HTTP 応答の本文をカスタマイズする HTTP ​**Listener**​ ソースの XML 設定を示しています。 ```xml #[payload ++ ' I am an HTTP server.'] ``` 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 ソースの設定」](https://docs.mulesoft.com/jp/http-connector/1.6/http-listener-ref)​を参照してください。 ## [](#http-クライアント)HTTP クライアント HTTP クライアントを使用すると、要求を HTTP サービスに送信し、その応答を管理できます。HTTP ​**Request**​ 操作は、HTTP 要求を実行し、対応する回答を返します。 HTTP クライアントは宣言しなくてもかまいませんが、宣言すると設定を再利用できます。HTTP クライアントを宣言しない場合、要求を送信するときに URL 全体を毎回指定します。また、さまざまな API リソースに対して複数の要求を実行する場合は、ホストが接続するクライアントを宣言します。 次の例は、HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml ``` HTTP 要求設定は ​`clientConfig`​ です。要求は ​`localhost`​ のポート ​`8081`​ に送信されます。 要求を実行するには、各要求に対象パスを含める必要があります。次の例は、異なるパスが指定された 2 つの HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml ``` 要求を ​`greet`​ と ​`exit`​ に送信することで、公開されたサービスがコンシュームされます。フローが実行されると、次のように表示されます。 ```xml Hello, world! I am an HTTP server. Goodbye, world! ``` 応答データをフローと共有するように HTTP 要求をカスタマイズできます。次の例は、送信する要求をクエリパラメーターでカスタマイズし、受信する HTTP 応答の状況を使用する、HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml #[{"name" : "HTTP client"}] ``` フローが実行されると、次のように表示されます。 ```xml Received a 200 response with body: {Hello, HTTP client! I am an HTTP server.} ``` HTTP ​**Request**​ 操作についての詳細は、​[「HTTP Request 操作の設定」](https://docs.mulesoft.com/jp/http-connector/1.6/http-request-ref)​を参照してください。 ## [](#次のステップ)次のステップ 前提条件を満たしたら、​[Anypoint Studio](https://docs.mulesoft.com/jp/http-connector/1.6/http-connector-studio)​ でアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.6 - XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 - Mule Runtime Engine (Mule) アプリケーションを (Anypoint Studio の XML エディターまたはテキストエディターから) 手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションからコネクタにアクセスできます。 - Studio でコネクタを追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力し、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​`mule`​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd ``` 次の例は、XML 内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします。 ```xml org.mule.connectors mule-http-connector x.x.x mule-plugin ``` ``​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`http`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/http-connector/1.6/http-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.7 HTTP 用 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 サーバー HTTP サーバーは、ユーザーまたはアプリケーションがコンシュームできるサービスを公開します。このサーバーは要求の形式でデータを受信し、対応する応答を返します。HTTP ​**Listener**​ ソースは、要求を受信したらフローをトリガーし、フローが完了したら応答します。 リスナーソース接続を定義して HTTP サーバーを宣言します。この接続では、要求が受信されるホストとポートを定義します。 次の例は、HTTP ​**Listener**​ ソース接続の XML の例を示しています。 ```xml ``` 接続設定は ​`serverConfig`​ です。これはポート ​`8081`​ で localhost アドレス (IP アドレス ​`127.0.0.1`​) をリスンします。Anypoint Studio でサーバーをセットアップしたら、​`http://localhost:8081`​ URL でこのサーバーにアクセスできます。 サーバーを詳細に設定するには、フローを実行するためのリソースパスを指定します。そのパスと一致する要求を受信すると、Mule Runtime Engine (Mule) はフローを実行します。 次の例は、トリガーされたパスに応じて実行される異なるフローの 2 つの HTTP ​**Listener**​ ソースの XML 設定を示しています。 ```xml ``` どちらのリスナーソースも、最初の例で宣言されている接続設定 ​`serverConfig`​ を使用します。HTTP ​**Listener**​ ソースが ​`Hello, world!`​ によってトリガーされた場合、コネクタは ​`http://localhost:8081/greet`​ を返します。ソースが ​`http://localhost:8081/exit`​ によってトリガーされた場合、コネクタは ​`Goodbye, world!`​ を返します。 受信した HTTP 要求データは、実行時にフローと共有されます。HTTP 応答はカスタマイズできます。 次の例は、HTTP 応答の本文をカスタマイズする HTTP ​**Listener**​ ソースの XML 設定を示しています。 ```xml #[payload ++ ' I am an HTTP server.'] ``` 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 ソースの設定」](https://docs.mulesoft.com/jp/http-connector/1.7/http-listener-ref)​を参照してください。 ## [](#http-クライアント)HTTP クライアント HTTP クライアントを使用すると、要求を HTTP サービスに送信し、その応答を管理できます。HTTP ​**Request**​ 操作は、HTTP 要求を実行し、対応する回答を返します。 HTTP クライアントは宣言しなくてもかまいませんが、宣言すると設定を再利用できます。HTTP クライアントを宣言しない場合、要求を送信するときに URL 全体を毎回指定します。また、さまざまな API リソースに対して複数の要求を実行する場合は、ホストが接続するクライアントを宣言します。 次の例は、HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml ``` HTTP 要求設定は ​`clientConfig`​ です。要求は ​`localhost`​ のポート ​`8081`​ に送信されます。 要求を実行するには、各要求に対象パスを含める必要があります。次の例は、異なるパスが指定された 2 つの HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml ``` 要求を ​`greet`​ と ​`exit`​ に送信することで、公開されたサービスがコンシュームされます。フローが実行されると、次のように表示されます。 ```xml Hello, world! I am an HTTP server. Goodbye, world! ``` 応答データをフローと共有するように HTTP 要求をカスタマイズできます。次の例は、送信する要求をクエリパラメーターでカスタマイズし、受信する HTTP 応答の状況を使用する、HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml #[{"name" : "HTTP client"}] ``` フローが実行されると、次のように表示されます。 ```xml Received a 200 response with body: {Hello, HTTP client! I am an HTTP server.} ``` HTTP ​**Request**​ 操作についての詳細は、​[「HTTP Request 操作の設定」](https://docs.mulesoft.com/jp/http-connector/1.7/http-request-ref)​を参照してください。 ## [](#次のステップ)次のステップ 前提条件を満たしたら、​[Anypoint Studio](https://docs.mulesoft.com/jp/http-connector/1.7/http-connector-studio)​ でアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.7 - XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 - Mule Runtime Engine (Mule) アプリケーションを (Anypoint Studio の XML エディターまたはテキストエディターから) 手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションからコネクタにアクセスできます。 - Studio でコネクタを追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力し、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​`mule`​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd ``` 次の例は、XML 内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします。 ```xml org.mule.connectors mule-http-connector x.x.x mule-plugin ``` ``​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`http`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/http-connector/1.7/http-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.8 HTTP 用 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 サーバー HTTP サーバーは、ユーザーまたはアプリケーションがコンシュームできるサービスを公開します。このサーバーは要求の形式でデータを受信し、対応する応答を返します。HTTP ​**Listener**​ ソースは、要求を受信したらフローをトリガーし、フローが完了したら応答します。 リスナーソース接続を定義して HTTP サーバーを宣言します。この接続では、要求が受信されるホストとポートを定義します。 次の例は、HTTP ​**Listener**​ ソース接続の XML の例を示しています。 ```xml ``` 接続設定は ​`serverConfig`​ です。これはポート ​`8081`​ で localhost アドレス (IP アドレス ​`127.0.0.1`​) をリスンします。Anypoint Studio でサーバーをセットアップしたら、​`http://localhost:8081`​ URL でこのサーバーにアクセスできます。 サーバーを詳細に設定するには、フローを実行するためのリソースパスを指定します。そのパスと一致する要求を受信すると、Mule Runtime Engine (Mule) はフローを実行します。 次の例は、トリガーされたパスに応じて実行される異なるフローの 2 つの HTTP ​**Listener**​ ソースの XML 設定を示しています。 ```xml ``` どちらのリスナーソースも、最初の例で宣言されている接続設定 ​`serverConfig`​ を使用します。HTTP ​**Listener**​ ソースが ​`Hello, world!`​ によってトリガーされた場合、コネクタは ​`http://localhost:8081/greet`​ を返します。ソースが ​`http://localhost:8081/exit`​ によってトリガーされた場合、コネクタは ​`Goodbye, world!`​ を返します。 受信した HTTP 要求データは、実行時にフローと共有されます。HTTP 応答はカスタマイズできます。 次の例は、HTTP 応答の本文をカスタマイズする HTTP ​**Listener**​ ソースの XML 設定を示しています。 ```xml #[payload ++ ' I am an HTTP server.'] ``` 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 ソースの設定」](https://docs.mulesoft.com/jp/http-connector/1.8/http-listener-ref)​を参照してください。 ## [](#http-クライアント)HTTP クライアント HTTP クライアントを使用すると、要求を HTTP サービスに送信し、その応答を管理できます。HTTP ​**Request**​ 操作は、HTTP 要求を実行し、対応する回答を返します。 HTTP クライアントは宣言しなくてもかまいませんが、宣言すると設定を再利用できます。HTTP クライアントを宣言しない場合、要求を送信するときに URL 全体を毎回指定します。また、さまざまな API リソースに対して複数の要求を実行する場合は、ホストが接続するクライアントを宣言します。 次の例は、HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml ``` HTTP 要求設定は ​`clientConfig`​ です。要求は ​`localhost`​ のポート ​`8081`​ に送信されます。 要求を実行するには、各要求に対象パスを含める必要があります。次の例は、異なるパスが指定された 2 つの HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml ``` 要求を ​`greet`​ と ​`exit`​ に送信することで、公開されたサービスがコンシュームされます。フローが実行されると、次のように表示されます。 ```xml Hello, world! I am an HTTP server. Goodbye, world! ``` 応答データをフローと共有するように HTTP 要求をカスタマイズできます。次の例は、送信する要求をクエリパラメーターでカスタマイズし、受信する HTTP 応答の状況を使用する、HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml #[{"name" : "HTTP client"}] ``` フローが実行されると、次のように表示されます。 ```xml Received a 200 response with body: {Hello, HTTP client! I am an HTTP server.} ``` HTTP ​**Request**​ 操作についての詳細は、​[「HTTP Request 操作の設定」](https://docs.mulesoft.com/jp/http-connector/1.8/http-request-ref)​を参照してください。 ## [](#次のステップ)次のステップ 前提条件を満たしたら、​[Anypoint Studio](https://docs.mulesoft.com/jp/http-connector/1.8/http-connector-studio)​ でアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.8 - XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 - Mule Runtime Engine (Mule) アプリケーションを (Anypoint Studio の XML エディターまたはテキストエディターから) 手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションからコネクタにアクセスできます。 - Studio でコネクタを追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力し、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​`mule`​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd ``` 次の例は、XML 内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします。 ```xml org.mule.connectors mule-http-connector x.x.x mule-plugin ``` ``​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`http`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/http-connector/1.8/http-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.8 リファレンス HTTP Connector v1.8 HTTP 用 Anypoint Connector (HTTP Connector) を使用して、HTTP 要求を処理および実行します。このクラスは、拡張定義としてのみ機能します。このコネクタの設定は、サーバー機能 (​``​) とクライアント機能 (​``​) に分けられます。 リリースノート: [HTTP Connector Release Notes](https://docs.mulesoft.com/jp/release-notes/connector/connector-http)​ (HTTP Connector リリースノート) ## [](#設定)設定 * * * ### [](#listenerConfig)リスナー設定 HttpListener の設定要素。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

Listener Interceptor (リスナーインターセプター)

要求および応答イベントに適用されるリスナーインターセプター。

Reject Invalid Transfer Encoding (無効な転送エンコードを拒否)

Boolean (ブール)

true​ の場合、Transfer-Encoding ヘッダーの値が無効の要求は拒否され、400 Bad Request (400 不正な要求) メッセージが表示されます。有効な値は ​chunked​、​deflate​、​compress​、​identity​、​gzip​ です。これらの値は、​RFC-7230​ と ​RFC-2616​ で定義されます。

false

#### [](#接続種別)接続種別 ##### [](#listenerConfig_listener)リスナー HttpListener の接続プロバイダーで、HttpServer インスタンスの作成を処理します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。プロトコルとして HTTPS が設定されている場合、ユーザーはこの listener-config の tls:context 子要素で少なくともキーストアを設定する必要があります。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

要求が受信されるポート。

x

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。タイムアウトの発生直前に既存の接続で要求を送信した場合の Remotely Closed (リモート終了) 例外を回避するために、リスナーのデフォルトのタイムアウトはリクエスターのデフォルトのタイムアウトより大きくなります。

40000

Read Timeout (読み取りタイムアウト)

Number (数値)

リスナーがメッセージの受信中に待機する必要がある最大時間 (ミリ秒単位)。

30000

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連付けられたソース)関連付けられたソース - [Listener](#listener) - [ポーリング入力元](#pollingSource) * * * ### [](#requestConfig)要求設定 HTTP 要求の設定要素。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、対象になった瞬間にプラットフォームでインスタンスの有効期限が切れるという意味ではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

/

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。デフォルト値は true です。

true

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。AUTO (自動) の場合、メソッドに応じて異なります (GET、HEAD、および OPTIONS では本文は送信されません)。

AUTO

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、要求はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Enable Cookies (Cookie を有効化)

Boolean (ブール)

true の場合、HTTP 応答で受信した Cookie は保存され、後続の HTTP 要求で送信されます。

true

Default Headers (デフォルトヘッダー)

メッセージに含まれる必要があるデフォルト HTTP ヘッダー。

クエリパラメーター

応答に含まれる必要があるデフォルトクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

メッセージをパブリッシュするときに相関 id を指定するかどうか。操作レベルで指定されるカスタム相関 id と、現在のイベントから引用されるデフォルト相関 id の両方に適用されます。

AUTO

Preserve Headers Case (ヘッダーの文字を保持)

Boolean (ブール)

デフォルトでは、ヘッダーキーは内部的に小文字で保存されます。これは、ヘッダー処理のパフォーマンス向上が目的で、RFC の仕様どおりに正しく機能します。<p> サーバーが特定の文字のヘッダーを期待している場合、このフラグを true に設定してヘッダーキーの文字を保持できます。

false

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒)。この値が存在しない場合、コネクタは Mule 設定のデフォルトの応答タイムアウト (10000) を使用します。

10000

Response Validator (応答バリデーター)

応答のデフォルトのエラー処理を設定します。

#### [](#接続種別-2)接続種別 ##### [](#requestConfig_request)Request HTTP 要求の接続プロバイダーで、HttpExtensionClient インスタンスの作成を処理します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Proxy Config (プロキシ設定)

次のいずれかになります。

プロキシ経由のアウトバウンド接続の再利用可能な設定要素。プロキシ要素では、必ずホスト名およびポート属性を定義し、必要に応じてユーザー名とパスワードを定義できます。

Authentication (認証)

次のいずれかになります。

HTTP 要求で使用する認証方式。

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。HTTPS がプロトコルとして設定された場合、この listener-config の ​tls:context​ 子要素を定義することで、ユーザーが tls/SSL 設定をカスタマイズできます。​tls:context​ が定義されていない場合、デフォルトの JVM 証明書が通信の確立に使用されます。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

Port (ポート)

Number (数値)

要求の送信先となるポート。プロトコル属性が HTTP (デフォルト) の場合、デフォルト値は 80、プロトコル属性が HTTPS の場合、デフォルト値は 443 です。

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Max Connections (最大接続数)

Number (数値)

同時に開いた状態にできるアウトバウンド接続の最大数。デフォルトでは、接続数は無制限です。

-1

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。

30000

Stream Response (応答のストリーミング)

Boolean (ブール)

受信応答をストリーミングする必要があるかどうか。つまり、すべてのヘッダーが解析されたらすぐに処理を続行し、本文は到着するとストリーミングされます。設定されたバッファサイズによっては、メモリに収まらず、容量が空くまで処理が停止する可能性があるため、有効になっている場合は徐々に応答を読み取る必要があります。

false

Response Buffer Size (応答バッファサイズ)

Number (数値)

HTTP 応答が保存されるバッファの領域 (バイト)。

1024

Client Socket Properties (クライアントソケットのプロパティ)

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連操作)関連操作 - [Request](#request) ## [](#操作)操作 ### [](#request)Request `` HTTP サービスをコンシュームします。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

GET

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Path (パス)

String (文字列)

要求の送信先となるパス。

URL

String (文字列)

要求を送信する URL。

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒)。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

URI パラメーター

Object (オブジェクト)

要求の作成に使用する必要がある URI パラメーター。

クエリパラメーター

Object (オブジェクト)

要求に含まれる必要があるクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Correlation Id (相関 ID)

String (文字列)

カスタム相関 ID の設定を許可します。

Response Validator (応答バリデーター)

応答のエラー処理を設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。この項目はこの操作では使用しません。

#### [](#出力)出力

型

Any (任意)

Attributes Type (属性型)

#### [](#設定-2)設定。 - [要求設定](#requestConfig) #### [](#スロー)スロー - HTTP:BAD\_REQUEST - HTTP:CLIENT\_SECURITY - HTTP:CONNECTIVITY - HTTP:FORBIDDEN - HTTP:INTERNAL\_SERVER\_ERROR - HTTP:METHOD\_NOT\_ALLOWED - HTTP:NOT\_ACCEPTABLE - HTTP:NOT\_FOUND - HTTP:PARSING - HTTP:RETRY\_EXHAUSTED - HTTP:SECURITY - HTTP:SERVICE\_UNAVAILABLE - HTTP:TIMEOUT - HTTP:TOO\_MANY\_REQUESTS - HTTP:UNAUTHORIZED - HTTP:UNSUPPORTED\_MEDIA\_TYPE - HTTP:BAD\_GATEWAY - HTTP:GATEWAY\_TIMEOUT ### [](#basicSecurityFilter)Basic Security Filter `` 受信した HTTP 要求を認証します。リスナーコンポーネントの後に使用する必要があります。 #### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Realm (レルム)

String (文字列)

認証レルム。

x

セキュリティプロバイダー

Array of String (文字列の配列)

認証に使用する代理セキュリティプロバイダー。設定内に複数のセキュリティマネージャーが定義されている場合に使用します。

Attributes (属性)

Authorization​ ヘッダーを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

#### [](#スロー-2)スロー - HTTP:BASIC\_AUTHENTICATION - MULE:SERVER\_SECURITY ### [](#loadStaticResource)Load Static Resource `` リソースをルックアップするための要求パスを使用して、HTTP で使用する静的なコンテンツを提供します。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Resource Base Path (リソースベースパス)

String (文字列)

ドキュメントの提供元であるリソースベース。例: /Users/maxthemule/resources

x

Default File (デフォルトファイル)

String (文字列)

ディレクトリが指定されたときに提供するデフォルトファイル。デフォルト値は ​index.html​ です。

index.html

Attributes (属性)

必須リソースを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-2)出力

型

Any (任意)

Attributes Type (属性型)

Any (任意)

#### [](#スロー-3)スロー - HTTP:NOT\_FOUND ## [](#ソース)ソース ### [](#listener)Listener `` HTTP 要求のリスナーを表します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

HTTP リスナー設定で指定されたパスからの相対パス。

x

Allowed Methods (許可されるメソッド)

String (文字列)

このリスナーで許可される HTTP メソッドのカンマ区切りリスト。すべてのメソッドを許可する場合は、この属性を定義しないでください。

Response Streaming Mode (応答ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

応答をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、応答はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

Status Code (状況コード)

Number (数値)

応答に含まれる必要がある HTTP 状況コード。

Reason Phrase (理由を示す語句)

String (文字列)

応答に含まれる必要がある HTTP の理由を示す語句。

#### [](#出力-3)出力

型

Any (任意)

Attributes Type (属性型)

#### [](#設定-3)設定。 - [リスナー設定](#listenerConfig) ### [](#pollingSource)ポーリング入力元 ``​ 指定された HTTP サーバーに対して、スケジュールされた HTTP 要求を実行するイベントソース。 #### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

HTTP Request 操作設定で指定されたパスからの相対パス。

Method (メソッド)

String (文字列)

HTTP 要求メソッド

GET

Response Validator (応答バリデーター)

接続テストの応答に適用される検証。

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの Mule インスタンスの実行時、このソースをプライマリノード上でのみ実行するかどうかを決定します。

On Capacity Overload (容量過負荷時)

Enumeration (列挙)。次のいずれかになります。 DROP WAIT ** FAIL

フローで管理可能な容量を超えたメッセージを受信した場合に Mule が適用する戦略。

WAIT

Scheduling Strategy (スケジュール戦略)

scheduling-strategy

ポーリングをトリガーするスケジューラーを設定します。

x

Streaming Strategy (ストリーミング戦略)

Mule によるストリームの処理方法を設定します。反復可能ストリームは、デフォルトの動作です。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシーを定義します。

Body (本文)

String (文字列)

応答メッセージの本文。

Headers (ヘッダー)

pollingRequestHeader の配列

メッセージに含まれる HTTP ヘッダー。

URI パラメーター

pollingRequestUriParam の配列

要求の作成に使用する URI パラメーター。

Query Parameters (クエリパラメーター)

pollingRequestQueryParam の配列

要求に含まれるクエリパラメーター。

Split Expression (分割式)

String (文字列)

応答に適用される分割式。

Watermark Expression (ウォーターマーク式)

String (文字列)

(分割) 応答からウォーターマークを取得する式。

Id Expression (ID 式)

String (文字列)

各 (分割) 項目から ID を取得する式。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-4)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合)次の設定の場合 - [要求設定](#requestConfig) ## [](#型)型 ### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)トラストストア
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が行われず、攻撃に対して脆弱な接続がレンダリングされます。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能であれば、現在のクラスパスとファイルシステムに対して解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、ファイルにある最初のキーがデフォルトで使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom Ocsp Responder (カスタム Ocsp レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)CRL File (CRL ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#CorsInterceptorWrapper)CORS Interceptor Wrapper (Cors インターセプターラッパー)
項目 型 説明 デフォルト値 必須

Cors Interceptor (Cors インターセプター)

要求が CORS 仕様に準拠していることを検証し、応答に対して適宜アクションを実行するインターセプター。

x

### [](#CorsListenerInterceptor)CORS Listener Interceptor (Cors リスナーインターセプター)
項目 型 説明 デフォルト値 必須

Allow Credentials (ログイン情報を許可)

Boolean (ブール)

false

Origins (発生源)

Array (配列)。次のいずれかになります。

x

### [](#HttpRequestAttributes)HTTP Request Attributes (HTTP 要求属性) メッセージ属性の使用方法についての詳細は、​[メッセージ属性に関する](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​ドキュメントを参照してください。
項目 型 説明 デフォルト値 必須

Listener Path (リスナーパス)

String (文字列)

要求が受信された場所のフルパス。

x

Raw Request Path (未加工要求パス)

String (文字列)

受信時にエンコードされる、要求されたフルパス。 1.5.0 以降

x

相対パス

String (文字列)

ベースパスを考慮しない、要求が受信された場所のパス。

x

Masked Request Path (マスクされた要求パス)

String (文字列)

リスナーパスをマスクし、差異を取り込んで算出されたパス。 これは、null の場合にのみ計算されます。

1.4.0 以降

x

バージョン

String (文字列)

要求の HTTP バージョン。

x

Schema (スキーマ)

String (文字列)

要求の HTTP スキーム。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

x

Request Uri (要求 URI)

String (文字列)

要求の完全 URI。

x

Raw Request Uri (未加工要求 URI)

String (文字列)

受信時にエンコードされる、要求のフル URI。 1.5.0 以降

x

Query String (クエリ文字列)

String (文字列)

要求のクエリ文字列。

x

Local Address (ローカルアドレス)

String (文字列)

サーバーからのローカルホストアドレス。

x

Remote Address (リモートアドレス)

String (文字列)

送信者からのリモートホストアドレス。

x

Client Certificate (クライアント証明書)

Any (任意)

クライアント証明書 (双方向 TLS が有効な場合)。

Query Params (クエリパラメーター)

Object (オブジェクト)

解析した文字列からビルドしたクエリパラメーターのマッピング。

x

Uri Params (URI パラメーター)

Object (オブジェクト)

要求パスから抽出した URI パラメーター。

x

Request Path (要求パス)

String (文字列)

要求されたフルパス。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。

x

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

これは、ストリームをコンシュームし、ストリームへのランダムアクセスを提供する目的で割り当てられるメモリの容量です。ストリームに含まれているデータがこのバッファに適合できる量を超えている場合、bufferSizeIncrement 属性に従ってバッファが拡張され、上限は maxInMemorySize となります。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、どれだけ拡張するか。値を 0 以下に設定すると、バッファが拡張されません。つまり、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

これは、バッファで使用できるメモリの最大量。これを超えると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

Max In Memory Size (最大メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用できる最大メモリを定義します。これを超えると、コンテンツはディスクにバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

正常に処理されずにプロセス失敗メッセージがトリガーされるまでにメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

ObjectStore

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#TcpClientSocketProperties)TCP クライアントソケットのプロパティ
項目 型 説明 デフォルト値 必須

Connection Timeout (接続タイムアウト)

Number (数値)

タイムアウトで失敗する前に、リモートサーバーへの接続中に待機する時間。設定されたリクエスターホストが複数の IP アドレスに解決される場合、ホストはそれぞれの IP アドレスへの接続を試みます。 そのため、すべての接続がタイムアウトになる場合、解決された IP アドレスの数だけグローバル接続タイムアウトの時間が長くなります。

30000

Send Tcp No Delay (遅延なく TCP を送信)

Boolean (ブール)

効率を高めるために送信データを収集して直ちにデータを送信するかどうかを示します。

true

Linger (延長)

Number (数値)

残りのデータが正しく送信されるように、ソケットが閉じるまでにかかるミリ秒単位の時間。

Keep Alive (キープアライブ)

Boolean (ブール)

ソケット接続が長時間未使用のまま開いており接続を使用できない場合にソケット接続を閉じることができるかどうかを示します。

false

Fail On Unresolved Host (ホストを解決できない場合は失敗)

Boolean (ブール)

作成時のソケットがエンドポイントに設定されているホストを解決できない場合に失敗するかどうかを示します。

true

Send Buffer Size (送信バッファサイズ)

Number (数値)

データ送信時のバイト単位のバッファのサイズ。

Receive Buffer Size (受信バッファサイズ)

Number (数値)

データ受信時のバイト単位のバッファのサイズ。

Client Timeout (クライアントタイムアウト)

Number (数値)

ブロック操作で失敗するまでにソケットが待機するミリ秒単位の時間。

Reuse Address (アドレスの再利用)

Boolean (ブール)

ポートをバインドしようとするときに、設定済みのポートを再利用する (​true​) か失敗にする (​false​) かを示します。

true

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime 属性の時間単位

### [](#defaultHeader)Default Header (デフォルトヘッダー)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

x

Value (値)

String (文字列)

x

### [](#QueryParam)Query Param (クエリパラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

x

Value (値)

String (文字列)

x

### [](#HttpResponseAttributes)HTTP Response Attributes (HTTP 応答属性) メッセージ属性の使用方法についての詳細は、​[メッセージ属性に関する](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​ドキュメントを参照してください。
項目 型 説明 デフォルト値 必須

Status Code (状況コード)

Number (数値)

応答の HTTP 状況コード。

x

Reason Phrase (理由を示す語句)

String (文字列)

応答の HTTP の理由を示す語句。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。

x

### [](#BasicAuthentication)基本認証
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#DigestAuthentication)ダイジェスト認証
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#NtlmAuthentication)NTLM 認証
項目 型 説明 デフォルト値 必須

Domain (ドメイン)

String (文字列)

認証するドメイン。

Workstation (ワークステーション)

String (文字列)

認証するワークステーション。

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#proxy)Proxy (プロキシ)
項目 型 説明 デフォルト値 必須

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#ntlm-proxy)NTLM Proxy (NTLM プロキシ)
項目 型 説明 デフォルト値 必須

Ntlm Domain (NTLM ドメイン)

String (文字列)

プロキシに対して認証するドメイン。

x

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#SuccessStatusCodeValidator)Success Status Code Validator (成功状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#FailureStatusCodeValidator)Failure Status Code Validator (失敗状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#origin)Origin (発生源)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

ブラウザーがリソースを読み込める発生元の URL。

x

Access Control Max Age (アクセス制御最大保持期間)

Number (数値)

プリフライト要求の結果をキャッシュする秒単位の時間。

x

Allowed Methods (許可されるメソッド)

Method (メソッド)​ の配列

発生元からリソースにアクセスするときに許可される HTTP メソッドを示します。

Allowed Headers (許可されるヘッダー)

Header (ヘッダー)​ の配列

プリフライト要求で、実際の要求中に使用する HTTP ヘッダーを示します。

Expose Headers (ヘッダーを公開)

Header (ヘッダー)​ の配列

要求で公開されるレスポンスヘッダー。

### [](#Method)Method (メソッド)
項目 型 説明 デフォルト値 必須

Method Name (メソッド名)

String (文字列)

HTTP メソッド名。

x

### [](#Header)Header (ヘッダー)
項目 型 説明 デフォルト値 必須

Header Name (ヘッダー名)

String (文字列)

HTTP ヘッダー名。

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.9 HTTP 用 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 サーバー HTTP サーバーは、ユーザーまたはアプリケーションがコンシュームできるサービスを公開します。このサーバーは要求の形式でデータを受信し、対応する応答を返します。HTTP ​**Listener**​ ソースは、要求を受信したらフローをトリガーし、フローが完了したら応答します。 リスナーソース接続を定義して HTTP サーバーを宣言します。この接続では、要求が受信されるホストとポートを定義します。 次の例は、HTTP ​**Listener**​ ソース接続の XML の例を示しています。 ```xml ``` 接続設定は ​`serverConfig`​ です。これはポート ​`8081`​ で localhost アドレス (IP アドレス ​`127.0.0.1`​) をリスンします。Anypoint Studio でサーバーをセットアップしたら、​`http://localhost:8081`​ URL でこのサーバーにアクセスできます。 サーバーを詳細に設定するには、フローを実行するためのリソースパスを指定します。そのパスと一致する要求を受信すると、Mule Runtime Engine (Mule) はフローを実行します。 次の例は、トリガーされたパスに応じて実行される異なるフローの 2 つの HTTP ​**Listener**​ ソースの XML 設定を示しています。 ```xml ``` どちらのリスナーソースも、最初の例で宣言されている接続設定 ​`serverConfig`​ を使用します。HTTP ​**Listener**​ ソースが ​`Hello, world!`​ によってトリガーされた場合、コネクタは ​`http://localhost:8081/greet`​ を返します。ソースが ​`http://localhost:8081/exit`​ によってトリガーされた場合、コネクタは ​`Goodbye, world!`​ を返します。 受信した HTTP 要求データは、実行時にフローと共有されます。HTTP 応答はカスタマイズできます。 次の例は、HTTP 応答の本文をカスタマイズする HTTP ​**Listener**​ ソースの XML 設定を示しています。 ```xml #[payload ++ ' I am an HTTP server.'] ``` 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 ソースの設定」](https://docs.mulesoft.com/jp/http-connector/1.9/http-listener-ref)​を参照してください。 ## [](#http-クライアント)HTTP クライアント HTTP クライアントを使用すると、要求を HTTP サービスに送信し、その応答を管理できます。HTTP ​**Request**​ 操作は、HTTP 要求を実行し、対応する回答を返します。 HTTP クライアントは宣言しなくてもかまいませんが、宣言すると設定を再利用できます。HTTP クライアントを宣言しない場合、要求を送信するときに URL 全体を毎回指定します。また、さまざまな API リソースに対して複数の要求を実行する場合は、ホストが接続するクライアントを宣言します。 次の例は、HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml ``` HTTP 要求設定は ​`clientConfig`​ です。要求は ​`localhost`​ のポート ​`8081`​ に送信されます。 要求を実行するには、各要求に対象パスを含める必要があります。次の例は、異なるパスが指定された 2 つの HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml ``` 要求を ​`greet`​ と ​`exit`​ に送信することで、公開されたサービスがコンシュームされます。フローが実行されると、次のように表示されます。 ```xml Hello, world! I am an HTTP server. Goodbye, world! ``` 応答データをフローと共有するように HTTP 要求をカスタマイズできます。次の例は、送信する要求をクエリパラメーターでカスタマイズし、受信する HTTP 応答の状況を使用する、HTTP ​**Request**​ 操作の XML 設定を示しています。 ```xml #[{"name" : "HTTP client"}] ``` フローが実行されると、次のように表示されます。 ```xml Received a 200 response with body: {Hello, HTTP client! I am an HTTP server.} ``` HTTP ​**Request**​ 操作についての詳細は、​[「HTTP Request 操作の設定」](https://docs.mulesoft.com/jp/http-connector/1.9/http-request-ref)​を参照してください。 ## [](#次のステップ)次のステップ 前提条件を満たしたら、​[Anypoint Studio](https://docs.mulesoft.com/jp/http-connector/1.9/http-connector-studio)​ でアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.9 - XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 - Mule Runtime Engine (Mule) アプリケーションを (Anypoint Studio の XML エディターまたはテキストエディターから) 手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションからコネクタにアクセスできます。 - Studio でコネクタを追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力し、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​`mule`​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd ``` 次の例は、XML 内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします。 ```xml org.mule.connectors mule-http-connector x.x.x mule-plugin ``` ``​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`http`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/http-connector/1.9/http-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector 1.9 リファレンス HTTP 用 Anypoint Connector (HTTP Connector) を使用して、HTTP 要求を処理および実行します。このクラスは、拡張定義としてのみ機能します。このコネクタの設定は、サーバー機能 (​``​) とクライアント機能 (​``​) に分けられます。 リリースノート: [HTTP Connector Release Notes](https://docs.mulesoft.com/jp/release-notes/connector/connector-http)​ (HTTP Connector リリースノート) ## [](#設定)設定 * * * ### [](#listenerConfig)リスナー設定 HttpListener の設定要素。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

Listener Interceptor (リスナーインターセプター)

要求および応答イベントに適用されるリスナーインターセプター。

Reject Invalid Transfer Encoding (無効な転送エンコードを拒否)

Boolean (ブール)

true​ の場合、Transfer-Encoding ヘッダーの値が無効の要求は拒否され、400 Bad Request (400 不正な要求) メッセージが表示されます。有効な値は ​chunked​、​deflate​、​compress​、​identity​、​gzip​ です。これらの値は、​RFC-7230​ と ​RFC-2616​ で定義されます。

false

#### [](#接続種別)接続種別 ##### [](#listenerConfig_listener)リスナー HttpListener の接続プロバイダーで、HttpServer インスタンスの作成を処理します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。プロトコルとして HTTPS が設定されている場合、ユーザーはこの listener-config の tls:context 子要素で少なくともキーストアを設定する必要があります。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

要求が受信されるポート。

x

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。タイムアウトの発生直前に既存の接続で要求を送信した場合の Remotely Closed (リモート終了) 例外を回避するために、リスナーのデフォルトの接続アイドルタイムアウトはリクエスターのデフォルトの接続アイドルタイムアウトより大きくなります。

40000

Read Timeout (読み取りタイムアウト)

Number (数値)

リスナーがメッセージの受信中に待機する必要がある最大時間 (ミリ秒単位)。

30000

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連付けられたソース)関連付けられたソース - [リスナー](#listener) - [ポーリング入力元](#pollingSource) * * * ### [](#requestConfig)要求設定 HTTP 要求の設定要素。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、対象になった瞬間にプラットフォームでインスタンスの有効期限が切れるという意味ではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

/

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。デフォルト値は true です。

true

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。AUTO (自動) の場合、メソッドに応じて異なります (GET、HEAD、および OPTIONS では本文は送信されません)。

AUTO

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、要求はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Enable Cookies (Cookie を有効化)

Boolean (ブール)

true の場合、HTTP 応答で受信した Cookie は保存され、後続の HTTP 要求で送信されます。

true

Default Headers (デフォルトヘッダー)

メッセージに含まれる必要があるデフォルト HTTP ヘッダー。

クエリパラメーター

応答に含まれる必要があるデフォルトクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

メッセージをパブリッシュするときに相関 id を指定するかどうか。操作レベルで指定されるカスタム相関 id と、現在のイベントから引用されるデフォルト相関 id の両方に適用されます。

AUTO

Preserve Headers Case (ヘッダーの文字を保持)

Boolean (ブール)

デフォルトでは、ヘッダーキーは内部的に小文字で保存されます。これは、ヘッダー処理のパフォーマンス向上が目的で、RFC の仕様どおりに正しく機能します。<p> サーバーが特定の文字のヘッダーを期待している場合、このフラグを true に設定してヘッダーキーの文字を保持できます。

false

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒)。この値が存在しない場合、コネクタは Mule 設定のデフォルトの応答タイムアウト (10000) を使用します。

10000

Response Validator (応答バリデーター)

応答のデフォルトのエラー処理を設定します。

#### [](#接続種別-2)接続種別 ##### [](#requestConfig_request)Request HTTP 要求の接続プロバイダーで、HttpExtensionClient インスタンスの作成を処理します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Proxy Config (プロキシ設定)

次のいずれかになります。

プロキシ経由のアウトバウンド接続の再利用可能な設定要素。プロキシ要素では、必ずホスト名およびポート属性を定義し、必要に応じてユーザー名とパスワードを定義できます。

Authentication (認証)

HTTP 要求で使用する認証方式。

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。HTTPS がプロトコルとして設定された場合、この listener-config の ​tls:context​ 子要素を定義することで、ユーザーが tls/SSL 設定をカスタマイズできます。​tls:context​ が定義されていない場合、デフォルトの JVM 証明書が通信の確立に使用されます。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

Port (ポート)

Number (数値)

要求の送信先となるポート。プロトコル属性が HTTP (デフォルト) の場合、デフォルト値は 80、プロトコル属性が HTTPS の場合、デフォルト値は 443 です。

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Max Connections (最大接続数)

Number (数値)

同時に開いた状態にできるアウトバウンド接続の最大数。デフォルトでは、接続数は無制限です。最大接続数の値を設定するとメモリ使用量を制限できますが、スループットが低下する可能性があります。

-1

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。

30000

Stream Response (応答のストリーミング)

Boolean (ブール)

受信応答をストリーミングする必要があるかどうか。つまり、すべてのヘッダーが解析されたらすぐに処理を続行し、本文は到着するとストリーミングされます。設定されたバッファサイズによっては、メモリに収まらず、容量が空くまで処理が停止する可能性があるため、有効になっている場合は徐々に応答を読み取る必要があります。

false

Response Buffer Size (応答バッファサイズ)

Number (数値)

HTTP 応答が保存されるバッファの領域 (バイト)。

1024

Client Socket Properties (クライアントソケットのプロパティ)

クライアントソケットのプロパティが設定されます。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連操作)関連操作 - [要求](#request) ## [](#操作)操作 ### [](#request)要求 `` HTTP サービスをコンシュームします。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

GET

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Path (パス)

String (文字列)

要求の送信先となるパス。

URL

String (文字列)

要求を送信する URL。

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒)。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

URI パラメーター

Object (オブジェクト)

要求の作成に使用する必要がある URI パラメーター。

クエリパラメーター

Object (オブジェクト)

要求に含まれる必要があるクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Correlation Id (相関 ID)

String (文字列)

カスタム相関 ID の設定を許可します。

Response Validator (応答バリデーター)

応答のエラー処理を設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。この項目はこの操作では使用しません。

#### [](#出力)出力

型

Any (任意)

Attributes Type (属性型)

#### [](#設定-2)設定。 - [要求設定](#requestConfig) #### [](#スロー)スロー - HTTP:BAD\_REQUEST - HTTP:CLIENT\_SECURITY - HTTP:CONNECTIVITY - HTTP:FORBIDDEN - HTTP:INTERNAL\_SERVER\_ERROR - HTTP:METHOD\_NOT\_ALLOWED - HTTP:NOT\_ACCEPTABLE - HTTP:NOT\_FOUND - HTTP:PARSING - HTTP:RETRY\_EXHAUSTED - HTTP:SECURITY - HTTP:SERVICE\_UNAVAILABLE - HTTP:TIMEOUT - HTTP:TOO\_MANY\_REQUESTS - HTTP:UNAUTHORIZED - HTTP:UNSUPPORTED\_MEDIA\_TYPE - HTTP:BAD\_GATEWAY - HTTP:GATEWAY\_TIMEOUT ### [](#basicSecurityFilter)Basic Security Filter `` 受信した HTTP 要求を認証します。リスナーコンポーネントの後に使用する必要があります。 #### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Realm (レルム)

String (文字列)

認証レルム。

x

セキュリティプロバイダー

Array of String (文字列の配列)

認証に使用する代理セキュリティプロバイダー。設定内に複数のセキュリティマネージャーが定義されている場合に使用します。

Attributes (属性)

Authorization​ ヘッダーを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

#### [](#スロー-2)スロー - HTTP:BASIC\_AUTHENTICATION - MULE:SERVER\_SECURITY ### [](#loadStaticResource)Load Static Resource `` この静的リソースにより、HTTP で使用する静的コンテンツが提供されます。要求パスはリソースの検索に使用されます。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Resource Base Path (リソースベースパス)

String (文字列)

ドキュメントの提供元であるリソースベース。例: /Users/maxthemule/resources

x

Default File (デフォルトファイル)

String (文字列)

ディレクトリが指定されたときに提供するデフォルトファイル。デフォルト値は ​index.html​ です。

index.html

Attributes (属性)

必須リソースを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力を評価する式。式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-2)出力

型

Any (任意)

Attributes Type (属性型)

Any (任意)

#### [](#スロー-3)スロー - HTTP:NOT\_FOUND ## [](#ソース)ソース ### [](#listener)リスナー `` HTTP 要求のリスナーを表します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

HTTP リスナー設定で指定されたパスからの相対パス。

x

Allowed Methods (許可されるメソッド)

String (文字列)

このリスナーで許可される HTTP メソッドのカンマ区切りリスト。すべてのメソッドを許可する場合は、この属性を定義しないでください。

Response Streaming Mode (応答ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

応答をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、応答はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

Status Code (状況コード)

Number (数値)

応答に含まれる必要がある HTTP 状況コード。

Reason Phrase (理由を示す語句)

String (文字列)

応答に含まれる必要がある HTTP の理由を示す語句。

#### [](#出力-3)出力

型

Any (任意)

Attributes Type (属性型)

#### [](#設定-3)設定。 - [リスナー設定](#listenerConfig) ### [](#pollingSource)ポーリング入力元 ``​ 指定された HTTP サーバーに対して、スケジュールされた HTTP 要求を実行するイベントソース。 #### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

HTTP Request 操作設定で指定されたパスからの相対パス。

Method (メソッド)

String (文字列)

HTTP 要求メソッド

GET

Response Validator (応答バリデーター)

接続テストの応答に適用される検証。

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの Mule インスタンスの実行時、このソースをプライマリノード上でのみ実行するかどうかを決定します。

On Capacity Overload (容量過負荷時)

Enumeration (列挙)。次のいずれかになります。 DROP WAIT ** FAIL

フローで管理可能な容量を超えたメッセージを受信した場合に Mule が適用する戦略。

WAIT

Scheduling Strategy (スケジュール戦略)

scheduling-strategy

ポーリングをトリガーするスケジューラーを設定します。

x

Streaming Strategy (ストリーミング戦略)

Mule によるストリームの処理方法を設定します。反復可能ストリームは、デフォルトの動作です。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシーを定義します。

Body (本文)

String (文字列)

応答メッセージの本文。

Headers (ヘッダー)

pollingRequestHeader の配列

メッセージに含まれる HTTP ヘッダー。

URI パラメーター

pollingRequestUriParam の配列

要求の作成に使用する URI パラメーター。

Query Parameters (クエリパラメーター)

pollingRequestQueryParam の配列

要求に含まれるクエリパラメーター。

Split Expression (分割式)

String (文字列)

応答に適用される分割式。

Watermark Expression (ウォーターマーク式)

String (文字列)

(分割) 応答からウォーターマークを取得する式。

Id Expression (ID 式)

String (文字列)

各 (分割) 項目から ID を取得する式。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-4)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合)次の設定の場合 - [要求設定](#requestConfig) ## [](#型)型 ### [](#Tls)TLS 設定の HTTPS を有効にする TLS 設定要素への参照。
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

TLS 用のトラストストアを設定します。

Key Store (キーストア)

TLS プロトコル用のキーストアを設定します。生成したキーストアには、非公開キーと公開証明書が格納されます。

Revocation Check (取り消し確認)

TLS の取り消し確認を設定します。

### [](#TrustStore)トラストストア TLS 用のトラストストアを設定します。
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が行われず、攻撃に対して脆弱な接続がレンダリングされます。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア) TLS プロトコル用のキーストアを設定します。生成したキーストアには、非公開キーと公開証明書が格納されます。
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能であれば、現在のクラスパスとファイルシステムに対して解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、ファイルにある最初のキーがデフォルトで使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認) TLS 証明書の標準取り消し確認を設定します。
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom OCSP Responder (カスタム OCSP レスポンダー) 証明書の取り消し確認のカスタム OCSP レスポンダーを設定します。
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)CRL File (CRL ファイル) 証明書失効リスト (CRL) ファイルの場所を指定します。
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続) 操作の再接続戦略を設定します。
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続) 標準再接続戦略を設定し、再接続の頻度と、コネクタソースまたは操作で実行できる再接続の試行回数を指定します。
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続) Mule アプリケーションが実行されている間はコネクタソースや操作によって指定された頻度で再接続が試行される Forever 再接続戦略を設定します。
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#CorsInterceptorWrapper)CORS Interceptor Wrapper (Cors インターセプターラッパー)
項目 型 説明 デフォルト値 必須

Cors Interceptor (Cors インターセプター)

要求が CORS 仕様に準拠していることを検証し、応答に対して適宜アクションを実行するインターセプター。

x

### [](#CorsListenerInterceptor)CORS Listener Interceptor (Cors リスナーインターセプター)
項目 型 説明 デフォルト値 必須

Allow Credentials (ログイン情報を許可)

Boolean (ブール)

false

Origins (発生源)

Array (配列)。次のいずれかになります。

x

### [](#HttpRequestAttributes)HTTP Request Attributes (HTTP 要求属性) メッセージ属性の使用方法についての詳細は、​[メッセージ属性に関する](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​ドキュメントを参照してください。
項目 型 説明 デフォルト値 必須

Listener Path (リスナーパス)

String (文字列)

要求が受信された場所のフルパス。

x

Raw Request Path (未加工要求パス)

String (文字列)

受信時にエンコードされる、要求されたフルパス。 1.5.0 以降

x

相対パス

String (文字列)

ベースパスを考慮しない、要求が受信された場所のパス。

x

Masked Request Path (マスクされた要求パス)

String (文字列)

リスナーパスをマスクし、差異を取り込んで算出されたパス。 これは、null の場合にのみ計算されます。

1.4.0 以降

x

バージョン

String (文字列)

要求の HTTP バージョン。

x

Schema (スキーマ)

String (文字列)

要求の HTTP スキーム。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

x

Request Uri (要求 URI)

String (文字列)

要求の完全 URI。

x

Raw Request Uri (未加工要求 URI)

String (文字列)

受信時にエンコードされる、要求のフル URI。 1.5.0 以降

x

Query String (クエリ文字列)

String (文字列)

要求のクエリ文字列。

x

Local Address (ローカルアドレス)

String (文字列)

サーバーからのローカルホストアドレス。

x

Remote Address (リモートアドレス)

String (文字列)

送信者からのリモートホストアドレス。

x

Client Certificate (クライアント証明書)

Any (任意)

クライアント証明書 (双方向 TLS が有効な場合)。

Query Params (クエリパラメーター)

Object (オブジェクト)

解析した文字列からビルドしたクエリパラメーターのマッピング。

x

Uri Params (URI パラメーター)

Object (オブジェクト)

要求パスから抽出した URI パラメーター。

x

Request Path (要求パス)

String (文字列)

要求されたフルパス。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。

x

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム) データが最大バッファサイズを超えた場合に要求が失敗するメモリ内ストリーミング戦略を設定します。ユースケースで最適なバッファサイズは、必ずパフォーマンステストを実施して決めてください。
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

これは、ストリームをコンシュームし、ストリームへのランダムアクセスを提供する目的で割り当てられるメモリの容量です。ストリームに含まれているデータがこのバッファに適合できる量を超えている場合、bufferSizeIncrement 属性に従ってバッファが拡張され、上限は maxInMemorySize となります。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、どれだけ拡張するか。値を 0 以下に設定すると、バッファが拡張されません。つまり、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

これは、バッファで使用できるメモリの最大量。これを超えると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム) 反復可能なファイルストアストリーミング戦略を設定します。この戦略では、ストリームコンテンツの一部がメモリ内に格納されます。ストリームのコンテンツが、設定されたバッファサイズよりも大きい場合、Mule はバッファのコンテンツをディスクにバックアップしてからメモリをクリアします。
項目 型 説明 デフォルト値 必須

Max In Memory Size (最大メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用できる最大メモリを定義します。これを超えると、コンテンツはディスクにバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー) エラーを生成する要求を実行するための再配信ポリシーを設定します。再配信ポリシーは、フロー内のあらゆる提供元に追加できます。
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

正常に処理されずにプロセス失敗メッセージがトリガーされるまでにメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

ObjectStore

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#TcpClientSocketProperties)TCP クライアントソケットのプロパティ クライアントソケットのプロパティが設定されます。
項目 型 説明 デフォルト値 必須

Connection Timeout (接続タイムアウト)

Number (数値)

タイムアウトで失敗する前に、リモートサーバーへの接続中に待機する時間。設定されたリクエスターホストが複数の IP アドレスに解決される場合、ホストはそれぞれの IP アドレスへの接続を試みます。 そのため、すべての接続がタイムアウトになる場合、解決された IP アドレスの数だけグローバル接続タイムアウトの時間が長くなります。

30000

Send Tcp No Delay (遅延なく TCP を送信)

Boolean (ブール)

効率を高めるために送信データを収集して直ちにデータを送信するかどうかを示します。

true

Linger (延長)

Number (数値)

残りのデータが正しく送信されるように、ソケットが閉じるまでにかかるミリ秒単位の時間。

Keep Alive (キープアライブ)

Boolean (ブール)

ソケット接続が長時間未使用のまま開いており接続を使用できない場合にソケット接続を閉じることができるかどうかを示します。

false

Fail On Unresolved Host (ホストを解決できない場合は失敗)

Boolean (ブール)

作成時のソケットがエンドポイントに設定されているホストを解決できない場合に失敗するかどうかを示します。

true

Send Buffer Size (送信バッファサイズ)

Number (数値)

データ送信時のバイト単位のバッファのサイズ。

Receive Buffer Size (受信バッファサイズ)

Number (数値)

データ受信時のバイト単位のバッファのサイズ。

Client Timeout (クライアントタイムアウト)

Number (数値)

ブロック操作で失敗するまでにソケットが待機するミリ秒単位の時間。

Reuse Address (アドレスの再利用)

Boolean (ブール)

ポートをバインドしようとするときに、設定済みのポートを再利用する (​true​) か失敗にする (​false​) かを示します。

true

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー) 動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。インスタンスが期限切れとみなされた瞬間にインスタンスが期限切れになるという意味ではありません。必要に応じて、インスタンスがパージされます。
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime 属性の時間単位

### [](#defaultHeader)Default Header (デフォルトヘッダー) メッセージに含まれる必要があるデフォルト HTTP ヘッダー。
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

デフォルト HTTP ヘッダーのキー。

x

Value (値)

String (文字列)

デフォルト HTTP ヘッダーの値。

x

### [](#QueryParam)Query Param (クエリパラメーター) 応答に含まれる必要があるデフォルトクエリパラメーター。
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

デフォルトクエリパラメーターのキー名。

x

Value (値)

String (文字列)

デフォルトクエリパラメーターの値。

x

### [](#HttpResponseAttributes)HTTP Response Attributes (HTTP 応答属性) メッセージ属性の使用方法についての詳細は、​[メッセージ属性に関する](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​ドキュメントを参照してください。
項目 型 説明 デフォルト値 必須

Status Code (状況コード)

Number (数値)

応答の HTTP 状況コード。

x

Reason Phrase (理由を示す語句)

String (文字列)

応答の HTTP の理由を示す語句。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。

x

### [](#BasicAuthentication)基本認証 基本認証メソッドを使用すると、HTTP ユーザーエージェントは HTTP 要求を行うときにユーザー名とパスワードを指定できます。
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#DigestAuthentication)ダイジェスト認証 ダイジェスト認証メソッドを使用すると、Web サーバーはユーザーの Web ブラウザーを介してユーザーログイン情報を検証できます。
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#NtlmAuthentication)NTLM 認証 NT LAN Manager (NTLM) 認証で、以前の Microsoft 製品である Microsoft LAN Manager (LANMAN) の認証プロトコルが置き換えられました。
項目 型 説明 デフォルト値 必須

Domain (ドメイン)

String (文字列)

認証するドメイン。

Workstation (ワークステーション)

String (文字列)

認証するワークステーション。

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#proxy)Proxy (プロキシ) プロキシ経由のアウトバウンド接続の再利用可能な設定要素。プロキシ要素では、必ずホスト名およびポート属性を定義し、必要に応じてユーザー名とパスワードを定義できます。
項目 型 説明 デフォルト値 必須

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#ntlm-proxy)NTLM Proxy (NTLM プロキシ)
項目 型 説明 デフォルト値 必須

Ntlm Domain (NTLM ドメイン)

String (文字列)

プロキシに対して認証するドメイン。

x

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#SuccessStatusCodeValidator)Success Status Code Validator (成功状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#FailureStatusCodeValidator)Failure Status Code Validator (失敗状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#origin)Origin (発生源)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

ブラウザーがリソースを読み込める発生元の URL。

x

Access Control Max Age (アクセス制御最大保持期間)

Number (数値)

プリフライト要求の結果をキャッシュする秒単位の時間。

x

Allowed Methods (許可されるメソッド)

Method (メソッド)​ の配列

発生元からリソースにアクセスするときに許可される HTTP メソッドを示します。

Allowed Headers (許可されるヘッダー)

Header (ヘッダー)​ の配列

プリフライト要求で、実際の要求中に使用する HTTP ヘッダーを示します。

Expose Headers (ヘッダーを公開)

Header (ヘッダー)​ の配列

要求で公開されるレスポンスヘッダー。

### [](#Method)Method (メソッド) HTTP メソッド名。
項目 型 説明 デフォルト値 必須

Method Name (メソッド名)

String (文字列)

HTTP メソッド名。

x

### [](#Header)Header (ヘッダー) HTTP ヘッダー名。
項目 型 説明 デフォルト値 必須

Header Name (ヘッダー名)

String (文字列)

HTTP ヘッダー名。

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector XML リファレンス HTTP 用 Anypoint Connector (HTTP Connector) は、イベントのリスンや、HTTP または HTTPS プロトコルに基づいた操作を実行します。HTTPS プロトコルを使用する場合、コネクタには TLS コンテキスト子要素の設定が必要です。次の例は、XML での HTTP Connector のソースと操作の設定を示しています。 ## [](#http-listener-の-xml-設定例)HTTP Listener の XML 設定例 `http:listener-config`​ 親要素では、リスン ​`port`​ や ​`tls:context`​ などの接続要素が、子 ​`http:listener-connection`​ 要素内に整理されています。次の例は、XML 設定を示しています。 ```xml ``` 次の例は、フロー内の ​`http:listener`​ ソースの XML 設定を示しています。 ```xml ``` HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

メソッド

#[inboundProperties.’http.method’]

#[attributes.method]

Path (パス)

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

バージョン

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

## [](#http-request-の-xml-設定例)HTTP Request の XML 設定例 `http:request-config`​ 親要素では、要求の接続要素が、子 ​`http:request-connection`​ 要素内に整理されています。次の例は、XML 設定を示しています。 ```xml
``` 次の例は、フロー内の ​`http:request`​ 操作の XML 設定を示しています。 ```xml ``` HTTP 要求は ​`HttpResponseAttributes`​ を返します。HTTP 要求属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

状況コード

#[inboundProperties.’http.status]

#[attributes.statusCode]

理由を示す語句

#[inboundProperties.’http.reason’]

#[attributes.reasonPhrase]

ヘッダー

#[inboundProperties]

#[attributes.headers]

## [](#http-load-static-resource-の-xml-設定例)HTTP Load Static Resource の XML 設定例 次の例は、フロー内の ​`http:load-static-resource`​ 操作の XML 設定を示しています。 ```xml ``` ## [](#http-basic-security-filter-の-xml-設定例)HTTP Basic Security Filter の XML 設定例 次の例は、フロー内の ​`http:basic-security-filter`​ 操作の XML 設定を示しています。 ```xml ``` ## [](#http-要求応答エラー応答の本文の-xml-の例)HTTP 要求、応答、エラー応答の本文の XML の例 HTTP 要求、応答、およびエラー応答の本文は、必要に応じて定義します。本文要素を明示的に定義しない場合、要求または応答はデフォルトのペイロードを返します。 次の例は、カスタム ​`body`​、キー/値 ​`query-parameter`​、X-Custom ​`header`​、URI パラメーター ​`uriParam`​ を入力する ​`uriParamsMap`​ 変数を含む ​`uri-params`​ を定義する、​`http:request`​ 操作の XML 設定を示しています。 ```xml #['Custom body'] #[{'X-Custom' : 'custom'}] #[uriParamsMap] #[{'key’' : 'value’'}] ``` 次の例は、定義された ​`body`​ 要素が欠けている ​`http:listener`​ ソースの XML 設定を示しています。返される値は、デフォルトのペイロードです。このペイロードには実行に成功した場合の ​`http:response`​ が定義されており、​`statusCode`​ として ​`200`​、​`reasonPhrase`​ として ​`Ok`​、​`headers`​ の ​`Name`​ に ​`content`​、​`Something`​ に ​`someValue`​ を返します。 ```xml #[{"Name" : "content", "Something" : someValue}] ``` 次の例は、実行に失敗した場合の応答を定義する ​`http:listener`​ ソースの XML 設定を示しています。​`statusCode`​ として ​`502`​、​`reasonPhrase`​ として ​`Failure`​、​`headers`​ の ​`Error`​ に ​`FIRE`​、​`body`​ に ​`Oops, something is wrong`​ を返します。 ```xml #[‘Oops, something is wrong’] #[{"Error" : "FIRE"}] ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation) # HTTP Connector XML リファレンス HTTP Connector は、イベントのリスンや、HTTP または HTTPS プロトコルに基づいた操作の実行を行います。HTTPS プロトコルを使用するには、設定に TLS コンテキスト子要素が必要です (次のセクションで説明)。Mule 4.0 以降では、リスナーおよび要求属性にアクセスするための DataWeave 構文がサポートされます。Mule では引き続き Mule Expression Language (MEL) がサポートされます。このドキュメントの各表では両方の構文がマップされています。 ## [](#リスナー)リスナー listener-config 親要素では、リスンポートや tls:context などの接続要素が、子 listener-connection 要素内に整理されています。接続要素は、http:listener-config の子要素です (次のコードを参照)。 ```xml ``` 次のコードは、HTTP リスナーをフローに配置します。 ```xml ``` HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト 3.x 4.x

メソッド

#[inboundProperties.’http.method’]

#[attributes.method]

Path (パス)

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

バージョン

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

## [](#http-要求)HTTP 要求 リスナーと同様に、request-config 親要素では、要求の接続要素が子 request-connection 要素内に整理されています (次のコードを参照)。 ```xml
``` 次のコードは、HTTP 要求をフローに配置します。HTTP 要求は HttpResponseAttributes を返します。 ```xml ``` HTTP 要求属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト 3.x 4.x

状況コード

#[inboundProperties.’http.status]

#[attributes.statusCode]

理由を示す語句

#[inboundProperties.’http.reason’]

#[attributes.reasonPhrase]

ヘッダー

#[inboundProperties]

#[attributes.headers]

## [](#http-要求応答およびエラー応答の本文)HTTP 要求、応答、およびエラー応答の本文 HTTP 要求、応答、およびエラー応答の本文は、必要に応じて定義します。本文要素を明示的に定義しない場合、要求または応答はデフォルトのペイロードを返します。 次の例の要求では、Custom body (カスタム本文)、キー=値クエリパラメーター、値が ​`custom`​ の X-Custom ヘッダーが定義されます。​`uriParamsMap`​ 変数によって URI パラメーター ​`uriParam`​ が入力されます。 ```xml #['Custom body'] #[{'X-Custom' : 'custom'}] #[uriParamsMap] #[{'key’' : 'value’'}] ``` 次のコードには、明示的に定義された本文要素がありません。返される値は、デフォルトのペイロードです。このペイロードには成功した実行の応答が定義されており、状況コード 200、理由を示す語句 ​`Ok`​、ヘッダーとして ​`Name`​ とその値 ​`content`​ および ​`Something`​ とその値 ​`someValue`​ が含まれます。 ```xml #[{"Name" : "content", "Something" : someValue}] ``` 次のコードには失敗した実行の応答が定義されており、状況コード 502、理由を示す語句 ​`Failure`​、ヘッダーとして ​`Error`​ とその値 ​`FIRE`​、本文として ​`Oops, something went terribly wrong`​ が含まれます。 ```xml #[‘Oops, something went terribly wrong.’] #[{"Error" : "FIRE"}] ``` ## [](#http-操作リファレンス)HTTP 操作リファレンス 次のコードは、静的リソースの読み込み操作の構文を示します。 ```xml ``` 次の例は、基本セキュリティ条件操作の構文を示します。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Connector の概要](https://docs.mulesoft.com/jp/http-connector/1.5/) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation) # HTTP Connector XML リファレンス HTTP 用 Anypoint Connector (HTTP Connector) は、イベントのリスンや、HTTP または HTTPS プロトコルに基づいた操作を実行します。HTTPS プロトコルを使用する場合、コネクタには TLS コンテキスト子要素の設定が必要です。次の例は、XML での HTTP Connector のソースと操作の設定を示しています。 ## [](#http-listener-の-xml-設定例)HTTP Listener の XML 設定例 `http:listener-config`​ 親要素では、リスン ​`port`​ や ​`tls:context`​ などの接続要素が、子 ​`http:listener-connection`​ 要素内に整理されています。次の例は、XML 設定を示しています。 ```xml ``` 次の例は、フロー内の ​`http:listener`​ ソースの XML 設定を示しています。 ```xml ``` HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

Method (メソッド)

#[inboundProperties.’http.method’]

#[attributes.method]

Path (パス)

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

Version (バージョン)

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

## [](#http-request-の-xml-設定例)HTTP Request の XML 設定例 `http:request-config`​ 親要素では、要求の接続要素が、子 ​`http:request-connection`​ 要素内に整理されています。次の例は、XML 設定を示しています。 ```xml
``` 次の例は、フロー内の ​`http:request`​ 操作の XML 設定を示しています。 ```xml ``` HTTP 要求は ​`HttpResponseAttributes`​ を返します。HTTP 要求属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

状況コード

#[inboundProperties.’http.status]

#[attributes.statusCode]

理由を示す語句

#[inboundProperties.’http.reason’]

#[attributes.reasonPhrase]

ヘッダー

#[inboundProperties]

#[attributes.headers]

## [](#http-load-static-resource-の-xml-設定例)HTTP Load Static Resource の XML 設定例 次の例は、フロー内の ​`http:load-static-resource`​ 操作の XML 設定を示しています。 ```xml ``` ## [](#http-basic-security-filter-の-xml-設定例)HTTP Basic Security Filter の XML 設定例 次の例は、フロー内の ​`http:basic-security-filter`​ 操作の XML 設定を示しています。 ```xml ``` ## [](#http-要求応答エラー応答の本文の-xml-の例)HTTP 要求、応答、エラー応答の本文の XML の例 HTTP 要求、応答、およびエラー応答の本文は、必要に応じて定義します。本文要素を明示的に定義しない場合、要求または応答はデフォルトのペイロードを返します。 次の例は、カスタム ​`body`​、キー/値 ​`query-parameter`​、X-Custom ​`header`​、URI パラメーター ​`uriParam`​ を入力する ​`uriParamsMap`​ 変数を含む ​`uri-params`​ を定義する、​`http:request`​ 操作の XML 設定を示しています。 ```xml #['Custom body'] #[{'X-Custom' : 'custom'}] #[uriParamsMap] #[{'key’' : 'value’'}] ``` 次の例は、定義された ​`body`​ 要素が欠けている ​`http:listener`​ ソースの XML 設定を示しています。返される値は、デフォルトのペイロードです。このペイロードには実行に成功した場合の ​`http:response`​ が定義されており、​`statusCode`​ として ​`200`​、​`reasonPhrase`​ として ​`Ok`​、​`headers`​ の ​`Name`​ に ​`content`​、​`Something`​ に ​`someValue`​ を返します。 ```xml #[{"Name" : "content", "Something" : someValue}] ``` 次の例は、実行に失敗した場合の応答を定義する ​`http:listener`​ ソースの XML 設定を示しています。​`statusCode`​ として ​`502`​、​`reasonPhrase`​ として ​`Failure`​、​`headers`​ の ​`Error`​ に ​`FIRE`​、​`body`​ に ​`Oops, something is wrong`​ を返します。 ```xml #[‘Oops, something is wrong’] #[{"Error" : "FIRE"}] ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-documentation) # HTTP Connector XML リファレンス HTTP 用 Anypoint Connector (HTTP Connector) は、イベントのリスンや、HTTP または HTTPS プロトコルに基づいた操作を実行します。HTTPS プロトコルを使用する場合、コネクタには TLS コンテキスト子要素の設定が必要です。次の例は、XML での HTTP Connector のソースと操作の設定を示しています。 ## [](#http-listener-の-xml-設定例)HTTP Listener の XML 設定例 `http:listener-config`​ 親要素では、リスン ​`port`​ や ​`tls:context`​ などの接続要素が、子 ​`http:listener-connection`​ 要素内に整理されています。次の例は、XML 設定を示しています。 ```xml ``` 次の例は、フロー内の ​`http:listener`​ ソースの XML 設定を示しています。 ```xml ``` HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

メソッド

#[inboundProperties.’http.method’]

#[attributes.method]

Path (パス)

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

バージョン

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

## [](#http-request-の-xml-設定例)HTTP Request の XML 設定例 `http:request-config`​ 親要素では、要求の接続要素が、子 ​`http:request-connection`​ 要素内に整理されています。次の例は、XML 設定を示しています。 ```xml ``` 次の例は、フロー内の ​`http:request`​ 操作の XML 設定を示しています。 ```xml ``` HTTP 要求は ​`HttpResponseAttributes`​ を返します。HTTP 要求属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

状況コード

#[inboundProperties.’http.status]

#[attributes.statusCode]

理由を示す語句

#[inboundProperties.’http.reason’]

#[attributes.reasonPhrase]

ヘッダー

#[inboundProperties]

#[attributes.headers]

## [](#http-load-static-resource-の-xml-設定例)HTTP Load Static Resource の XML 設定例 次の例は、フロー内の ​`http:load-static-resource`​ 操作の XML 設定を示しています。 ```xml ``` ## [](#http-basic-security-filter-の-xml-設定例)HTTP Basic Security Filter の XML 設定例 次の例は、フロー内の ​`http:basic-security-filter`​ 操作の XML 設定を示しています。 ```xml ``` ## [](#http-要求応答エラー応答の本文の-xml-の例)HTTP 要求、応答、エラー応答の本文の XML の例 HTTP 要求、応答、およびエラー応答の本文は、必要に応じて定義します。本文要素を明示的に定義しない場合、要求または応答はデフォルトのペイロードを返します。 次の例は、カスタム ​`body`​、キー/値 ​`query-parameter`​、X-Custom ​`header`​、URI パラメーター ​`uriParam`​ を入力する ​`uriParamsMap`​ 変数を含む ​`uri-params`​ を定義する、​`http:request`​ 操作の XML 設定を示しています。 ```xml #['Custom body'] #[{'X-Custom' : 'custom'}] #[uriParamsMap] #[{'key’' : 'value’'}] ``` 次の例は、定義された ​`body`​ 要素が欠けている ​`http:listener`​ ソースの XML 設定を示しています。返される値は、デフォルトのペイロードです。このペイロードには実行に成功した場合の ​`http:response`​ が定義されており、​`statusCode`​ として ​`200`​、​`reasonPhrase`​ として ​`Ok`​、​`headers`​ の ​`Name`​ に ​`content`​、​`Something`​ に ​`someValue`​ を返します。 ```xml #[{"Name" : "content", "Something" : someValue}] ``` 次の例は、実行に失敗した場合の応答を定義する ​`http:listener`​ ソースの XML 設定を示しています。​`statusCode`​ として ​`502`​、​`reasonPhrase`​ として ​`Failure`​、​`headers`​ の ​`Error`​ に ​`FIRE`​、​`body`​ に ​`Oops, something is wrong`​ を返します。 ```xml #[‘Oops, something is wrong’] #[{"Error" : "FIRE"}] ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-documentation) # HTTP Connector XML リファレンス HTTP 用 Anypoint Connector (HTTP Connector) は、イベントのリスンや、HTTP または HTTPS プロトコルに基づいた操作を実行します。HTTPS プロトコルを使用する場合、コネクタには TLS コンテキスト子要素の設定が必要です。次の例は、XML での HTTP Connector のソースと操作の設定を示しています。 ## [](#http-listener-の-xml-設定例)HTTP Listener の XML 設定例 `http:listener-config`​ 親要素では、リスン ​`port`​ や ​`tls:context`​ などの接続要素が、子 ​`http:listener-connection`​ 要素内に整理されています。次の例は、XML 設定を示しています。 ```xml ``` 次の例は、フロー内の ​`http:listener`​ ソースの XML 設定を示しています。 ```xml ``` HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

メソッド

#[inboundProperties.’http.method’]

#[attributes.method]

Path (パス)

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

バージョン

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

## [](#http-request-の-xml-設定例)HTTP Request の XML 設定例 `http:request-config`​ 親要素では、要求の接続要素が、子 ​`http:request-connection`​ 要素内に整理されています。次の例は、XML 設定を示しています。 ```xml ``` 次の例は、フロー内の ​`http:request`​ 操作の XML 設定を示しています。 ```xml ``` HTTP 要求は ​`HttpResponseAttributes`​ を返します。HTTP 要求属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

状況コード

#[inboundProperties.’http.status]

#[attributes.statusCode]

理由を示す語句

#[inboundProperties.’http.reason’]

#[attributes.reasonPhrase]

ヘッダー

#[inboundProperties]

#[attributes.headers]

## [](#http-load-static-resource-の-xml-設定例)HTTP Load Static Resource の XML 設定例 次の例は、フロー内の ​`http:load-static-resource`​ 操作の XML 設定を示しています。 ```xml ``` ## [](#http-basic-security-filter-の-xml-設定例)HTTP Basic Security Filter の XML 設定例 次の例は、フロー内の ​`http:basic-security-filter`​ 操作の XML 設定を示しています。 ```xml ``` ## [](#http-要求応答エラー応答の本文の-xml-の例)HTTP 要求、応答、エラー応答の本文の XML の例 HTTP 要求、応答、およびエラー応答の本文は、必要に応じて定義します。本文要素を明示的に定義しない場合、要求または応答はデフォルトのペイロードを返します。 次の例は、カスタム ​`body`​、キー/値 ​`query-parameter`​、X-Custom ​`header`​、URI パラメーター ​`uriParam`​ を入力する ​`uriParamsMap`​ 変数を含む ​`uri-params`​ を定義する、​`http:request`​ 操作の XML 設定を示しています。 ```xml #['Custom body'] #[{'X-Custom' : 'custom'}] #[uriParamsMap] #[{'key’' : 'value’'}] ``` 次の例は、定義された ​`body`​ 要素が欠けている ​`http:listener`​ ソースの XML 設定を示しています。返される値は、デフォルトのペイロードです。このペイロードには実行に成功した場合の ​`http:response`​ が定義されており、​`statusCode`​ として ​`200`​、​`reasonPhrase`​ として ​`Ok`​、​`headers`​ の ​`Name`​ に ​`content`​、​`Something`​ に ​`someValue`​ を返します。 ```xml #[{"Name" : "content", "Something" : someValue}] ``` 次の例は、実行に失敗した場合の応答を定義する ​`http:listener`​ ソースの XML 設定を示しています。​`statusCode`​ として ​`502`​、​`reasonPhrase`​ として ​`Failure`​、​`headers`​ の ​`Error`​ に ​`FIRE`​、​`body`​ に ​`Oops, something is wrong`​ を返します。 ```xml #[‘Oops, something is wrong’] #[{"Error" : "FIRE"}] ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation) # HTTP Connector XML リファレンス HTTP 用 Anypoint Connector (HTTP Connector) は、イベントのリスンや、HTTP または HTTPS プロトコルに基づいた操作を実行します。HTTPS プロトコルを使用する場合、コネクタには TLS コンテキスト子要素の設定が必要です。次の例は、XML での HTTP Connector のソースと操作の設定を示しています。 ## [](#http-listener-の-xml-設定例)HTTP Listener の XML 設定例 `http:listener-config`​ 親要素では、リスン ​`port`​ や ​`tls:context`​ などの接続要素が、子 ​`http:listener-connection`​ 要素内に整理されています。次の例は、XML 設定を示しています。 ```xml ``` 次の例は、フロー内の ​`http:listener`​ ソースの XML 設定を示しています。 ```xml ``` HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

メソッド

#[inboundProperties.’http.method’]

#[attributes.method]

Path (パス)

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

バージョン

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

## [](#http-request-の-xml-設定例)HTTP Request の XML 設定例 `http:request-config`​ 親要素では、要求の接続要素が、子 ​`http:request-connection`​ 要素内に整理されています。次の例は、XML 設定を示しています。 ```xml ``` 次の例は、フロー内の ​`http:request`​ 操作の XML 設定を示しています。 ```xml ``` HTTP 要求は ​`HttpResponseAttributes`​ を返します。HTTP 要求属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

状況コード

#[inboundProperties.’http.status]

#[attributes.statusCode]

理由を示す語句

#[inboundProperties.’http.reason’]

#[attributes.reasonPhrase]

ヘッダー

#[inboundProperties]

#[attributes.headers]

## [](#http-load-static-resource-の-xml-設定例)HTTP Load Static Resource の XML 設定例 次の例は、フロー内の ​`http:load-static-resource`​ 操作の XML 設定を示しています。 ```xml ``` ## [](#http-basic-security-filter-の-xml-設定例)HTTP Basic Security Filter の XML 設定例 次の例は、フロー内の ​`http:basic-security-filter`​ 操作の XML 設定を示しています。 ```xml ``` ## [](#http-要求応答エラー応答の本文の-xml-の例)HTTP 要求、応答、エラー応答の本文の XML の例 HTTP 要求、応答、およびエラー応答の本文は、必要に応じて定義します。本文要素を明示的に定義しない場合、要求または応答はデフォルトのペイロードを返します。 次の例は、カスタム ​`body`​、キー/値 ​`query-parameter`​、X-Custom ​`header`​、URI パラメーター ​`uriParam`​ を入力する ​`uriParamsMap`​ 変数を含む ​`uri-params`​ を定義する、​`http:request`​ 操作の XML 設定を示しています。 ```xml #['Custom body'] #[{'X-Custom' : 'custom'}] #[uriParamsMap] #[{'key’' : 'value’'}] ``` 次の例は、定義された ​`body`​ 要素が欠けている ​`http:listener`​ ソースの XML 設定を示しています。返される値は、デフォルトのペイロードです。このペイロードには実行に成功した場合の ​`http:response`​ が定義されており、​`statusCode`​ として ​`200`​、​`reasonPhrase`​ として ​`Ok`​、​`headers`​ の ​`Name`​ に ​`content`​、​`Something`​ に ​`someValue`​ を返します。 ```xml #[{"Name" : "content", "Something" : someValue}] ``` 次の例は、実行に失敗した場合の応答を定義する ​`http:listener`​ ソースの XML 設定を示しています。​`statusCode`​ として ​`502`​、​`reasonPhrase`​ として ​`Failure`​、​`headers`​ の ​`Error`​ に ​`FIRE`​、​`body`​ に ​`Oops, something is wrong`​ を返します。 ```xml #[‘Oops, something is wrong’] #[{"Error" : "FIRE"}] ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation) # HTTP Connector のトラブルシューティング Anypoint Connector for HTTP (HTTP Connector) をトラブルシューティングするには、ワイヤーロギングおよび TLS デバッグを有効にして、​`Host`​ ヘッダーおよび HTTP エンコーディングを適切に使用するようにして、よくスローされるメッセージについて理解しておきます。 ## [](#ワイヤーロギングを有効化する)ワイヤーロギングを有効化する ワイヤーロギングを有効にしてアプリケーションのパフォーマンスのトラブルシューティングを行うと、アプリケーションワークフローの実際の未加工 HTTP 要求および応答がログに記録されます。その後、そのログを使用して現在の設定を検証するか、HTTP Connector の動作を他のクライアントやサーバーと比較します。 HTTP ワイヤーロギングを有効化する手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクトを開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. 次の行がすでに ​`log4j2.xml`​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。 ```xml ... ... ... ``` 1. 変更を保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#tls-デバッグの有効化)TLS デバッグの有効化 TLS デバッグを有効にして SSL 障害のトラブルシューティングを行うと、接続試行、ハンドシェイク、ネゴシエーションなどの SSL 関連のデータがログに記録されます。 その後、そのログを使用して、正しい証明書が揃っているか、なぜ暗号化やプロトコルの不一致が起きているのか、なぜ接続が失敗するのかなどを判断します。 TLS デバッグを有効にするには、システムプロパティ ​`-Djavax.net.debug=ssl`​ を設定します。 ## [](#host-ヘッダーの誤使用のトラブルシューティング)Host ヘッダーの誤使用のトラブルシューティング HTTP クライアントでは、​`Host`​ ヘッダーを使用して要求されたリソースのホストとポート番号を示します。HTTP Connector の ​**Request**​ 操作では、設定されたホストとポートを考慮するこの必須のヘッダーを自動生成します。ただし、サーバーではポート情報を省略可能とみなすことが多くあり、ポート情報が含まれる要求を受信するとエラーになります。 こうしたエラーはサーバーオーナーに報告して修正を依頼してください。修正されるまでの間は、ポート情報を含めずに ​`Host`​ ヘッダーを出力するように ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Host: somehost.com`​ ヘッダーを送信する ​``​ 設定を示しています。 ```xml #[{"Host" : "somehost.com"}] ``` 明示的なヘッダー設定がないと、自動生成された ​`Host: somehost.com:8081`​ が送信されます。 ## [](#http-エンコードのトラブルシューティング)HTTP エンコードのトラブルシューティング ストリーミングされたデータを処理する時のパフォーマンスを向上させるために、HTTP Connector では送信するデータのサイズが不明な場合に ​`Transfer-Encoding: chunked`​ エンコードを使用して要求および応答を送信します。ただし、HTTP クライアントおよびサーバーがこうしたデータを受信する準備ができていない場合があります。 こうしたエラーはサーバーオーナーまたはクライアント所有者に報告して修正を依頼してください。修正されるまでの間は、​`Content-Length`​ でエンコードされた本文を出力するように ​**Listener**​ 操作および ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Content-Length`​ エンコードを使用することを示す ​`responseStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Listener**​ 操作を示しています。 ```xml ``` 次の例は、​`Content-Length`​ エンコードを使用するために ​`requestStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Requester**​ 操作を示しています。 ```xml ``` ## [](#oauth2-認証コード許可種別の問題のトラブルシューティング)OAuth2 認証コード許可種別の問題のトラブルシューティング Mule アプリケーションで OAuth2 認証コード許可種別認証を使用しており、​`_[No access token found. Verify that you have authenticated before trying to execute an operation to the API (アクセストークンが見つかりません。API に対する操作を実行する前に、認証されていることを確認してください)]_`​ メッセージが返された場合、次の可能な解決策を確認してください。 - 認証 URL をコールする。OAuth ポリシーに従って、認証 URL を少なくとも 1 回コールしてアクセストークンを取得する必要があります。 - オブジェクトストアを使用する。アクセストークンをオブジェクトストアに保存します。トークンが期限切れになったら、更新トークンを使用して新しいアクセストークンを取得してオブジェクトストアを更新します。 - DocuSign Connector を使用する。DocuSign Connector を使用して認証とトークンをより効果的に管理することを検討します。 ## [](#一般的なスローを理解する)一般的なスローを理解する ここでは、一般的なスローメッセージとその解決方法を示します。 - HTTP:BAD\_REQUEST たとえばヘッダーサイズが最大値を超えている場合に、構文が無効であるためサーバーが要求を理解できません。 - HTTP:CLIENT\_SECURITY 外部エンティティによって適用されたセキュリティの問題が発生しました。 - HTTP:CONNECTIVITY A problem occurred and a connection could not be established. (問題が発生して接続を確立できませんでした。) - HTTP:FORBIDDEN クライアントにコンテンツへのアクセス権がないため、サーバーが要求されたリソースの提供を拒否しています。 - HTTP:INTERNAL\_SERVER\_ERROR サーバーで要求を満たせない状況が発生しました。 - HTTP:METHOD\_NOT\_ALLOWED サーバーの要求メソッドが対象リソースでサポートされていません。 - HTTP:NOT\_ACCEPTABLE サーバーが要求のプロアクティブコンテンツネゴシエーションヘッダーで定義された許容可能な値のリストに一致する応答を生成できません。 - HTTP:NOT\_FOUND The server could not find the requested resource. (サーバーは要求されたリソースを見つけることができませんでした。) - HTTP:PARSING \[非推奨ですが、互換性を確保するために保持されています。\] 解析メカニズムが削除されました。 - HTTP:RETRY\_EXHAUSTED The maximum number of retries for the operation is reached. (操作の最大再試行回数に達しました。) - HTTP:SECURITY リクエスター認証に失敗しました。 - HTTP:SERVICE\_UNAVAILABLE サーバーはメンテナンスまたは過負荷のためにダウンしているため、要求を管理できません。 - HTTP:TIMEOUT http:requester によって送信された要求がタイムアウトになりました。 - HTTP:TOO\_MANY\_REQUESTS 特定の期間内に送信された要求が多すぎます。 - HTTP:UNAUTHORIZED 要求された応答を取得するための認証に失敗したか、認証がまだ提供されていません。 - HTTP:UNSUPPORTED\_MEDIA\_TYPE サーバーで要求されたデータのメディア形式がサポートされていません。 - HTTP:BAD\_GATEWAY 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが無効な応答を受信しました。 - HTTP:GATEWAY\_TIMEOUT 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが指定された時間内に応答を受信しませんでした。 - HTTP:BASIC\_AUTHENTICATION HTTP の ​\*Request\*​ 操作でサービスに要求を送信するための基本認証がないか、指定されたログイン情報が正しくありません。 ## [](#関連情報)関連情報 - [HTTP Listener の設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-listener-ref) - [HTTP Request 設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-request-ref) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [Known Issues](https://help.salesforce.com/s/issues) # HTTP Connector のトラブルシューティング Anypoint Connector for HTTP (HTTP Connector) をトラブルシューティングするには、ワイヤーロギングおよび TLS デバッグを有効にして、​`Host`​ ヘッダーおよび HTTP エンコーディングを適切に使用するようにして、よくスローされるメッセージについて理解しておきます。 ## [](#ワイヤーロギングを有効化する)ワイヤーロギングを有効化する ワイヤーロギングを有効にしてアプリケーションのパフォーマンスのトラブルシューティングを行うと、アプリケーションワークフローの実際の未加工 HTTP 要求および応答がログに記録されます。その後、そのログを使用して現在の設定を検証するか、HTTP Connector の動作を他のクライアントやサーバーと比較します。 HTTP ワイヤーロギングを有効化する手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクトを開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. 次の行がすでに ​`log4j2.xml`​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。 ```xml ... ... ... ``` 1. 変更を保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#tls-デバッグの有効化)TLS デバッグの有効化 TLS デバッグを有効にして SSL 障害のトラブルシューティングを行うと、接続試行、ハンドシェイク、ネゴシエーションなどの SSL 関連のデータがログに記録されます。 その後、そのログを使用して、正しい証明書が揃っているか、なぜ暗号化やプロトコルの不一致が起きているのか、なぜ接続が失敗するのかなどを判断します。 TLS デバッグを有効にするには、システムプロパティ ​`-Djavax.net.debug=ssl`​ を設定します。 ## [](#host-ヘッダーの誤使用のトラブルシューティング)Host ヘッダーの誤使用のトラブルシューティング HTTP クライアントでは、​`Host`​ ヘッダーを使用して要求されたリソースのホストとポート番号を示します。HTTP Connector の ​**Request**​ 操作では、設定されたホストとポートを考慮するこの必須のヘッダーを自動生成します。ただし、サーバーではポート情報を省略可能とみなすことが多くあり、ポート情報が含まれる要求を受信するとエラーになります。 こうしたエラーはサーバーオーナーに報告して修正を依頼してください。修正されるまでの間は、ポート情報を含めずに ​`Host`​ ヘッダーを出力するように ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Host: somehost.com`​ ヘッダーを送信する ​``​ 設定を示しています。 ```xml #[{"Host" : "somehost.com"}] ``` 明示的なヘッダー設定がないと、自動生成された ​`Host: somehost.com:8081`​ が送信されます。 ## [](#http-エンコードのトラブルシューティング)HTTP エンコードのトラブルシューティング ストリーミングされたデータを処理する時のパフォーマンスを向上させるために、HTTP Connector では送信するデータのサイズが不明な場合に ​`Transfer-Encoding: chunked`​ エンコードを使用して要求および応答を送信します。ただし、HTTP クライアントおよびサーバーがこうしたデータを受信する準備ができていない場合があります。 こうしたエラーはサーバーオーナーまたはクライアントオーナーに報告して修正を依頼してください。修正されるまでの間は、​`Content-Length`​ でエンコードされた本文を出力するように ​**Listener**​ 操作および ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Content-Length`​ エンコードを使用することを示す ​`responseStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Listener**​ 操作を示しています。 ```xml ``` 次の例は、​`Content-Length`​ エンコードを使用するために ​`requestStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Requester**​ 操作を示しています。 ```xml ``` ## [](#oauth2-認証コード許可種別の問題のトラブルシューティング)OAuth2 認証コード許可種別の問題のトラブルシューティング Mule アプリケーションで OAuth2 認証コード許可種別認証を使用しており、​`_[No access token found. Verify that you have authenticated before trying to execute an operation to the API (アクセストークンが見つかりません。API に対する操作を実行する前に、認証されていることを確認してください)]_`​ メッセージが返された場合、次の可能な解決策を確認してください。 - 認証 URL をコールする。OAuth ポリシーに従って、認証 URL を少なくとも 1 回コールしてアクセストークンを取得する必要があります。 - オブジェクトストアを使用する。アクセストークンをオブジェクトストアに保存します。トークンが期限切れになったら、更新トークンを使用して新しいアクセストークンを取得してオブジェクトストアを更新します。 - DocuSign Connector を使用する。DocuSign Connector を使用して認証とトークンをより効果的に管理することを検討します。 ## [](#一般的なスローの理解)一般的なスローの理解 ここでは、一般的なスローメッセージとその解決方法を示します。 - HTTP:BAD\_REQUEST たとえばヘッダーサイズが最大値を超えている場合に、構文が無効であるためサーバーが要求を理解できません。 - HTTP:CLIENT\_SECURITY 外部エンティティによって適用されたセキュリティの問題が発生しました。 - HTTP:CONNECTIVITY A problem occurred and a connection could not be established. (問題が発生して接続を確立できませんでした。) - HTTP:FORBIDDEN クライアントにコンテンツへのアクセス権がないため、サーバーが要求されたリソースの提供を拒否しています。 - HTTP:INTERNAL\_SERVER\_ERROR サーバーで要求を満たせない状況が発生しました。 - HTTP:METHOD\_NOT\_ALLOWED サーバーの要求メソッドが対象リソースでサポートされていません。 - HTTP:NOT\_ACCEPTABLE サーバーが要求のプロアクティブコンテンツネゴシエーションヘッダーで定義された許容可能な値のリストに一致する応答を生成できません。 - HTTP:NOT\_FOUND The server could not find the requested resource. (サーバーは要求されたリソースを見つけることができませんでした。) - HTTP:PARSING \[非推奨ですが、互換性を確保するために保持されています。\] 解析メカニズムが削除されました。 - HTTP:RETRY\_EXHAUSTED The maximum number of retries for the operation is reached. (操作の最大再試行回数に達しました。) - HTTP:SECURITY リクエスター認証に失敗しました。 - HTTP:SERVICE\_UNAVAILABLE サーバーはメンテナンスまたは過負荷のためにダウンしているため、要求を管理できません。 - HTTP:TIMEOUT http:requester によって送信された要求がタイムアウトになりました。 - HTTP:TOO\_MANY\_REQUESTS 特定の期間内に送信された要求が多すぎます。 - HTTP:UNAUTHORIZED 要求された応答を取得するための認証に失敗したか、認証がまだ提供されていません。 - HTTP:UNSUPPORTED\_MEDIA\_TYPE サーバーで要求されたデータのメディア形式がサポートされていません。 - HTTP:BAD\_GATEWAY 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが無効な応答を受信しました。 - HTTP:GATEWAY\_TIMEOUT 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが指定された時間内に応答を受信しませんでした。 - HTTP:BASIC\_AUTHENTICATION HTTP の ​\*Request\*​ 操作でサービスに要求を送信するための基本認証がないか、指定されたログイン情報が正しくありません。 ## [](#関連情報)関連情報 - [HTTP Listener の設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-listener-ref) - [HTTP Request 設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-request-ref) # HTTP Connector のトラブルシューティング Anypoint Connector for HTTP (HTTP Connector) をトラブルシューティングするには、ワイヤーロギングおよび TLS デバッグを有効にして、​`Host`​ ヘッダーおよび HTTP エンコーディングを適切に使用するようにして、よくスローされるメッセージについて理解しておきます。 ## [](#ワイヤーロギングを有効にする)ワイヤーロギングを有効にする ワイヤーロギングを有効にしてアプリケーションのパフォーマンスのトラブルシューティングを行うと、アプリケーションワークフローの実際の未加工 HTTP 要求および応答がログに記録されます。その後、そのログを使用して現在の設定を検証するか、HTTP Connector の動作を他のクライアントやサーバーと比較します。 HTTP ワイヤーロギングを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクトを開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. 次の行がすでに ​`log4j2.xml`​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。 ```xml ... ... ... ``` 1. 変更を保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#tls-デバッグの有効化)TLS デバッグの有効化 TLS デバッグを有効にして SSL 障害のトラブルシューティングを行うと、接続試行、ハンドシェイク、ネゴシエーションなどの SSL 関連のデータがログに記録されます。 その後、そのログを使用して、正しい証明書が揃っているか、なぜ暗号化やプロトコルの不一致が起きているのか、なぜ接続が失敗するのかなどを判断します。 TLS デバッグを有効にするには、システムプロパティ ​`-Djavax.net.debug=ssl`​ を設定します。 ## [](#host-ヘッダーの誤使用のトラブルシューティング)Host ヘッダーの誤使用のトラブルシューティング HTTP クライアントでは、​`Host`​ ヘッダーを使用して要求されたリソースのホストとポート番号を示します。HTTP Connector の ​**Request**​ 操作では、設定されたホストとポートを考慮するこの必須のヘッダーを自動生成します。ただし、サーバーではポート情報を省略可能とみなすことが多くあり、ポート情報が含まれる要求を受信するとエラーになります。 こうしたエラーはサーバーオーナーに報告して修正を依頼してください。修正されるまでの間は、ポート情報を含めずに ​`Host`​ ヘッダーを出力するように ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Host: somehost.com`​ ヘッダーを送信する ​``​ 設定を示しています。 ```xml #[{"Host" : "somehost.com"}] ``` 明示的なヘッダー設定がないと、自動生成された ​`Host: somehost.com:8081`​ が送信されます。 ## [](#http-エンコードのトラブルシューティング)HTTP エンコードのトラブルシューティング ストリーミングされたデータを処理する時のパフォーマンスを向上させるために、HTTP Connector では送信するデータのサイズが不明な場合に ​`Transfer-Encoding: chunked`​ エンコードを使用して要求および応答を送信します。ただし、HTTP クライアントおよびサーバーがこうしたデータを受信する準備ができていない場合があります。 こうしたエラーはサーバーオーナーまたはクライアントオーナーに報告して修正を依頼してください。修正されるまでの間は、​`Content-Length`​ でエンコードされた本文を出力するように ​**Listener**​ 操作および ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Content-Length`​ エンコードを使用することを示す ​`responseStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Listener**​ 操作を示しています。 ```xml ``` 次の例は、​`Content-Length`​ エンコードを使用するために ​`requestStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Requester**​ 操作を示しています。 ```xml ``` ## [](#oauth2-認証コード許可種別の問題のトラブルシューティング)OAuth2 認証コード許可種別の問題のトラブルシューティング Mule アプリケーションで OAuth2 認証コード許可種別認証を使用しており、​`_[No access token found. Verify that you have authenticated before trying to execute an operation to the API (アクセストークンが見つかりません。API に対する操作を実行する前に、認証されていることを確認してください)]_`​ メッセージが返された場合、次の可能な解決策を確認してください。 - 認証 URL をコールする。OAuth ポリシーに従って、認証 URL を少なくとも 1 回コールしてアクセストークンを取得する必要があります。 - オブジェクトストアを使用する。アクセストークンをオブジェクトストアに保存します。トークンが期限切れになったら、更新トークンを使用して新しいアクセストークンを取得してオブジェクトストアを更新します。 - DocuSign Connector を使用する。DocuSign Connector を使用して認証とトークンをより効果的に管理することを検討します。 ## [](#一般的なスローを理解する)一般的なスローを理解する ここでは、一般的なスローメッセージとその解決方法を示します。 - HTTP:BAD\_REQUEST たとえばヘッダーサイズが最大値を超えている場合に、構文が無効であるためサーバーが要求を理解できません。 - HTTP:CLIENT\_SECURITY 外部エンティティによって適用されたセキュリティの問題が発生しました。 - HTTP:CONNECTIVITY A problem occurred and a connection could not be established. (問題が発生して接続を確立できませんでした。) - HTTP:FORBIDDEN クライアントにコンテンツへのアクセス権がないため、サーバーが要求されたリソースの提供を拒否しています。 - HTTP:INTERNAL\_SERVER\_ERROR サーバーで要求を満たせない状況が発生しました。 - HTTP:METHOD\_NOT\_ALLOWED サーバーの要求メソッドが対象リソースでサポートされていません。 - HTTP:NOT\_ACCEPTABLE サーバーが要求のプロアクティブコンテンツネゴシエーションヘッダーで定義された許容可能な値のリストに一致する応答を生成できません。 - HTTP:NOT\_FOUND The server could not find the requested resource. (サーバーは要求されたリソースを見つけることができませんでした。) - HTTP:PARSING \[非推奨ですが、互換性を確保するために保持されています。\] 解析メカニズムが削除されました。 - HTTP:RETRY\_EXHAUSTED 操作の最大再試行回数に達しました。 - HTTP:SECURITY リクエスター認証に失敗しました。 - HTTP:SERVICE\_UNAVAILABLE サーバーはメンテナンスまたは過負荷のためにダウンしているため、要求を管理できません。 - HTTP:TIMEOUT http:requester によって送信された要求がタイムアウトになりました。 - HTTP:TOO\_MANY\_REQUESTS 特定の期間内に送信された要求が多すぎます。 - HTTP:UNAUTHORIZED 要求された応答を取得するための認証に失敗したか、認証がまだ提供されていません。 - HTTP:UNSUPPORTED\_MEDIA\_TYPE サーバーで要求されたデータのメディア形式がサポートされていません。 - HTTP:BAD\_GATEWAY 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが無効な応答を受信しました。 - HTTP:GATEWAY\_TIMEOUT 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが指定された時間内に応答を受信しませんでした。 - HTTP:BASIC\_AUTHENTICATION HTTP の ​\*Request\*​ 操作でサービスに要求を送信するための基本認証がないか、指定されたログイン情報が正しくありません。 ## [](#関連情報)関連情報 - [HTTP Listener の設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-listener-ref) - [HTTP Request 設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-request-ref) # HTTP Connector のトラブルシューティング Anypoint Connector for HTTP (HTTP Connector) をトラブルシューティングするには、ワイヤーロギングおよび TLS デバッグを有効にして、​`Host`​ ヘッダーおよび HTTP エンコーディングを適切に使用するようにして、よくスローされるメッセージについて理解しておきます。 ## [](#ワイヤーロギングを有効化する)ワイヤーロギングを有効化する ワイヤーロギングを有効にしてアプリケーションのパフォーマンスのトラブルシューティングを行うと、アプリケーションワークフローの実際の未加工 HTTP 要求および応答がログに記録されます。その後、そのログを使用して現在の設定を検証するか、HTTP Connector の動作を他のクライアントやサーバーと比較します。 HTTP ワイヤーロギングを有効化する手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクトを開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. 次の行がすでに ​`log4j2.xml`​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。 ```xml ... ... ... ``` 1. 変更を保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#tls-デバッグの有効化)TLS デバッグの有効化 TLS デバッグを有効にして SSL 障害のトラブルシューティングを行うと、接続試行、ハンドシェイク、ネゴシエーションなどの SSL 関連のデータがログに記録されます。 その後、そのログを使用して、正しい証明書が揃っているか、なぜ暗号化やプロトコルの不一致が起きているのか、なぜ接続が失敗するのかなどを判断します。 TLS デバッグを有効にするには、システムプロパティ ​`-Djavax.net.debug=ssl`​ を設定します。 ## [](#host-ヘッダーの誤使用のトラブルシューティング)Host ヘッダーの誤使用のトラブルシューティング HTTP クライアントでは、​`Host`​ ヘッダーを使用して要求されたリソースのホストとポート番号を示します。HTTP Connector の ​**Request**​ 操作では、設定されたホストとポートを考慮するこの必須のヘッダーを自動生成します。ただし、サーバーではポート情報を省略可能とみなすことが多くあり、ポート情報が含まれる要求を受信するとエラーになります。 こうしたエラーはサーバーオーナーに報告して修正を依頼してください。修正されるまでの間は、ポート情報を含めずに ​`Host`​ ヘッダーを出力するように ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Host: somehost.com`​ ヘッダーを送信する ​``​ 設定を示しています。 ```xml #[{"Host" : "somehost.com"}] ``` 明示的なヘッダー設定がないと、自動生成された ​`Host: somehost.com:8081`​ が送信されます。 ## [](#http-エンコードのトラブルシューティング)HTTP エンコードのトラブルシューティング ストリーミングされたデータを処理する時のパフォーマンスを向上させるために、HTTP Connector では送信するデータのサイズが不明な場合に ​`Transfer-Encoding: chunked`​ エンコードを使用して要求および応答を送信します。ただし、HTTP クライアントおよびサーバーがこうしたデータを受信する準備ができていない場合があります。 こうしたエラーはサーバーオーナーまたはクライアントオーナーに報告して修正を依頼してください。修正されるまでの間は、​`Content-Length`​ でエンコードされた本文を出力するように ​**Listener**​ 操作および ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Content-Length`​ エンコードを使用することを示す ​`responseStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Listener**​ 操作を示しています。 ```xml ``` 次の例は、​`Content-Length`​ エンコードを使用するために ​`requestStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Requester**​ 操作を示しています。 ```xml ``` ## [](#oauth2-認証コード許可種別の問題のトラブルシューティング)OAuth2 認証コード許可種別の問題のトラブルシューティング Mule アプリケーションで OAuth2 認証コード許可種別認証を使用しており、​`_[No access token found. Verify that you have authenticated before trying to execute an operation to the API (アクセストークンが見つかりません。API に対する操作を実行する前に、認証されていることを確認してください)]_`​ メッセージが返された場合、次の可能な解決策を確認してください。 - 認証 URL をコールする。OAuth ポリシーに従って、認証 URL を少なくとも 1 回コールしてアクセストークンを取得する必要があります。 - オブジェクトストアを使用する。アクセストークンをオブジェクトストアに保存します。トークンが期限切れになったら、更新トークンを使用して新しいアクセストークンを取得してオブジェクトストアを更新します。 - DocuSign Connector を使用する。DocuSign Connector を使用して認証とトークンをより効果的に管理することを検討します。 ## [](#一般的なスローの理解)一般的なスローの理解 ここでは、一般的なスローメッセージとその解決方法を示します。 - HTTP:BAD\_REQUEST たとえばヘッダーサイズが最大値を超えている場合に、構文が無効であるためサーバーが要求を理解できません。 - HTTP:CLIENT\_SECURITY 外部エンティティによって適用されたセキュリティの問題が発生しました。 - HTTP:CONNECTIVITY A problem occurred and a connection could not be established. (問題が発生して接続を確立できませんでした。) - HTTP:FORBIDDEN クライアントにコンテンツへのアクセス権がないため、サーバーが要求されたリソースの提供を拒否しています。 - HTTP:INTERNAL\_SERVER\_ERROR サーバーで要求を満たせない状況が発生しました。 - HTTP:METHOD\_NOT\_ALLOWED サーバーの要求メソッドが対象リソースでサポートされていません。 - HTTP:NOT\_ACCEPTABLE サーバーが要求のプロアクティブコンテンツネゴシエーションヘッダーで定義された許容可能な値のリストに一致する応答を生成できません。 - HTTP:NOT\_FOUND The server could not find the requested resource. (サーバーは要求されたリソースを見つけることができませんでした。) - HTTP:PARSING \[非推奨ですが、互換性を確保するために保持されています。\] 解析メカニズムが削除されました。 - HTTP:RETRY\_EXHAUSTED The maximum number of retries for the operation is reached. (操作の最大試行回数に達しました。) - HTTP:SECURITY リクエスター認証に失敗しました。 - HTTP:SERVICE\_UNAVAILABLE サーバーはメンテナンスまたは過負荷のためにダウンしているため、要求を管理できません。 - HTTP:TIMEOUT http:requester によって送信された要求がタイムアウトになりました。 - HTTP:TOO\_MANY\_REQUESTS 特定の期間内に送信された要求が多すぎます。 - HTTP:UNAUTHORIZED 要求された応答を取得するための認証に失敗したか、認証がまだ提供されていません。 - HTTP:UNSUPPORTED\_MEDIA\_TYPE サーバーで要求されたデータのメディア形式がサポートされていません。 - HTTP:BAD\_GATEWAY 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが無効な応答を受信しました。 - HTTP:GATEWAY\_TIMEOUT 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが指定された時間内に応答を受信しませんでした。 - HTTP:BASIC\_AUTHENTICATION HTTP の ​\*Request\*​ 操作でサービスに要求を送信するための基本認証がないか、指定されたログイン情報が正しくありません。 ## [](#関連情報)関連情報 - [HTTP Listener の設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-listener-ref) - [HTTP Request 設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-request-ref) # HTTP Connector のトラブルシューティング Anypoint Connector for HTTP (HTTP Connector) をトラブルシューティングするには、ワイヤーロギングおよび TLS デバッグを有効にして、​`Host`​ ヘッダーおよび HTTP エンコーディングを適切に使用するようにして、よくスローされるメッセージについて理解しておきます。 ## [](#ワイヤーロギングを有効化する)ワイヤーロギングを有効化する ワイヤーロギングを有効にしてアプリケーションのパフォーマンスのトラブルシューティングを行うと、アプリケーションワークフローの実際の未加工 HTTP 要求および応答がログに記録されます。その後、そのログを使用して現在の設定を検証するか、HTTP Connector の動作を他のクライアントやサーバーと比較します。 HTTP ワイヤーロギングを有効化する手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクトを開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. 次の行がすでに ​`log4j2.xml`​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。 ```xml ... ... ... ``` 1. 変更を保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#tls-デバッグの有効化)TLS デバッグの有効化 TLS デバッグを有効にして SSL 障害のトラブルシューティングを行うと、接続試行、ハンドシェイク、ネゴシエーションなどの SSL 関連のデータがログに記録されます。 その後、そのログを使用して、正しい証明書が揃っているか、なぜ暗号化やプロトコルの不一致が起きているのか、なぜ接続が失敗するのかなどを判断します。 TLS デバッグを有効にするには、システムプロパティ ​`-Djavax.net.debug=ssl`​ を設定します。 ## [](#host-ヘッダーの誤使用のトラブルシューティング)Host ヘッダーの誤使用のトラブルシューティング HTTP クライアントでは、​`Host`​ ヘッダーを使用して要求されたリソースのホストとポート番号を示します。HTTP Connector の ​**Request**​ 操作では、設定されたホストとポートを考慮するこの必須のヘッダーを自動生成します。ただし、サーバーではポート情報を省略可能とみなすことが多くあり、ポート情報が含まれる要求を受信するとエラーになります。 こうしたエラーはサーバーオーナーに報告して修正を依頼してください。修正されるまでの間は、ポート情報を含めずに ​`Host`​ ヘッダーを出力するように ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Host: somehost.com`​ ヘッダーを送信する ​``​ 設定を示しています。 ```xml #[{"Host" : "somehost.com"}] ``` 明示的なヘッダー設定がないと、自動生成された ​`Host: somehost.com:8081`​ が送信されます。 ## [](#http-エンコードのトラブルシューティング)HTTP エンコードのトラブルシューティング ストリーミングされたデータを処理する時のパフォーマンスを向上させるために、HTTP Connector では送信するデータのサイズが不明な場合に ​`Transfer-Encoding: chunked`​ エンコードを使用して要求および応答を送信します。ただし、HTTP クライアントおよびサーバーがこうしたデータを受信する準備ができていない場合があります。 こうしたエラーはサーバーオーナーまたはクライアントオーナーに報告して修正を依頼してください。修正されるまでの間は、​`Content-Length`​ でエンコードされた本文を出力するように ​**Listener**​ 操作および ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Content-Length`​ エンコードを使用することを示す ​`responseStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Listener**​ 操作を示しています。 ```xml ``` 次の例は、​`Content-Length`​ エンコードを使用するために ​`requestStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Requester**​ 操作を示しています。 ```xml ``` ## [](#oauth2-認証コード許可種別の問題のトラブルシューティング)OAuth2 認証コード許可種別の問題のトラブルシューティング Mule アプリケーションで OAuth2 認証コード許可種別認証を使用しており、​`_[No access token found. Verify that you have authenticated before trying to execute an operation to the API (アクセストークンが見つかりません。API に対する操作を実行する前に、認証されていることを確認してください)]_`​ メッセージが返された場合、次の可能な解決策を確認してください。 - 認証 URL をコールする。OAuth ポリシーに従って、認証 URL を少なくとも 1 回コールしてアクセストークンを取得する必要があります。 - オブジェクトストアを使用する。アクセストークンをオブジェクトストアに保存します。トークンが期限切れになったら、更新トークンを使用して新しいアクセストークンを取得してオブジェクトストアを更新します。 - DocuSign Connector を使用する。DocuSign Connector を使用して認証とトークンをより効果的に管理することを検討します。 ## [](#一般的なスローの理解)一般的なスローの理解 ここでは、一般的なスローメッセージとその解決方法を示します。 - HTTP:BAD\_REQUEST たとえばヘッダーサイズが最大値を超えている場合に、構文が無効であるためサーバーが要求を理解できません。 - HTTP:CLIENT\_SECURITY 外部エンティティによって適用されたセキュリティの問題が発生しました。 - HTTP:CONNECTIVITY A problem occurred and a connection could not be established. (問題が発生して接続を確立できませんでした。) - HTTP:FORBIDDEN クライアントにコンテンツへのアクセス権がないため、サーバーが要求されたリソースの提供を拒否しています。 - HTTP:INTERNAL\_SERVER\_ERROR サーバーで要求を満たせない状況が発生しました。 - HTTP:METHOD\_NOT\_ALLOWED サーバーの要求メソッドが対象リソースでサポートされていません。 - HTTP:NOT\_ACCEPTABLE サーバーが要求のプロアクティブコンテンツネゴシエーションヘッダーで定義された許容可能な値のリストに一致する応答を生成できません。 - HTTP:NOT\_FOUND The server could not find the requested resource. (サーバーは要求されたリソースを見つけることができませんでした。) - HTTP:PARSING \[非推奨ですが、互換性を確保するために保持されています。\] 解析メカニズムが削除されました。 - HTTP:RETRY\_EXHAUSTED The maximum number of retries for the operation is reached. (操作の最大再試行回数に達しました。) - HTTP:SECURITY リクエスター認証に失敗しました。 - HTTP:SERVICE\_UNAVAILABLE サーバーはメンテナンスまたは過負荷のためにダウンしているため、要求を管理できません。 - HTTP:TIMEOUT http:requester によって送信された要求がタイムアウトになりました。 - HTTP:TOO\_MANY\_REQUESTS 特定の期間内に送信された要求が多すぎます。 - HTTP:UNAUTHORIZED 要求された応答を取得するための認証に失敗したか、認証がまだ提供されていません。 - HTTP:UNSUPPORTED\_MEDIA\_TYPE サーバーで要求されたデータのメディア形式がサポートされていません。 - HTTP:BAD\_GATEWAY 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが無効な応答を受信しました。 - HTTP:GATEWAY\_TIMEOUT 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが指定された時間内に応答を受信しませんでした。 - HTTP:BASIC\_AUTHENTICATION HTTP の ​\*Request\*​ 操作でサービスに要求を送信するための基本認証がないか、指定されたログイン情報が正しくありません。 ## [](#関連情報)関連情報 - [HTTP Listener の設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-listener-ref) - [HTTP Request 設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-request-ref) # HTTP Connector のトラブルシューティング Anypoint Connector for HTTP (HTTP Connector) をトラブルシューティングするには、ワイヤーロギングおよび TLS デバッグを有効にして、​`Host`​ ヘッダーおよび HTTP エンコーディングを適切に使用するようにして、よくスローされるメッセージについて理解しておきます。 ## [](#ワイヤーロギングを有効化する)ワイヤーロギングを有効化する ワイヤーロギングを有効にしてアプリケーションのパフォーマンスのトラブルシューティングを行うと、アプリケーションワークフローの実際の未加工 HTTP 要求および応答がログに記録されます。その後、そのログを使用して現在の設定を検証するか、HTTP Connector の動作を他のクライアントやサーバーと比較します。 HTTP ワイヤーロギングを有効化する手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクトを開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. 次の行がすでに ​`log4j2.xml`​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。 ```xml ... ... ... ``` 1. 変更を保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#tls-デバッグの有効化)TLS デバッグの有効化 TLS デバッグを有効にして SSL 障害のトラブルシューティングを行うと、接続試行、ハンドシェイク、ネゴシエーションなどの SSL 関連のデータがログに記録されます。 その後、そのログを使用して、正しい証明書が揃っているか、なぜ暗号化やプロトコルの不一致が起きているのか、なぜ接続が失敗するのかなどを判断します。 TLS デバッグを有効にするには、システムプロパティ ​`-Djavax.net.debug=ssl`​ を設定します。 ## [](#host-ヘッダーの誤使用のトラブルシューティング)Host ヘッダーの誤使用のトラブルシューティング HTTP クライアントでは、​`Host`​ ヘッダーを使用して要求されたリソースのホストとポート番号を示します。HTTP Connector の ​**Request**​ 操作では、設定されたホストとポートを考慮するこの必須のヘッダーを自動生成します。ただし、サーバーではポート情報を省略可能とみなすことが多くあり、ポート情報が含まれる要求を受信するとエラーになります。 こうしたエラーはサーバーオーナーに報告して修正を依頼してください。修正されるまでの間は、ポート情報を含めずに ​`Host`​ ヘッダーを出力するように ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Host: somehost.com`​ ヘッダーを送信する ​``​ 設定を示しています。 ```xml #[{"Host" : "somehost.com"}] ``` 明示的なヘッダー設定がないと、自動生成された ​`Host: somehost.com:8081`​ が送信されます。 ## [](#http-エンコードのトラブルシューティング)HTTP エンコードのトラブルシューティング ストリーミングされたデータを処理する時のパフォーマンスを向上させるために、HTTP Connector では送信するデータのサイズが不明な場合に ​`Transfer-Encoding: chunked`​ エンコードを使用して要求および応答を送信します。ただし、HTTP クライアントおよびサーバーがこうしたデータを受信する準備ができていない場合があります。 こうしたエラーはサーバーオーナーまたはクライアント所有者に報告して修正を依頼してください。修正されるまでの間は、​`Content-Length`​ でエンコードされた本文を出力するように ​**Listener**​ 操作および ​**Request**​ 操作を手動で変更して、この問題を回避してください。 次の例は、​`Content-Length`​ エンコードを使用することを示す ​`responseStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Listener**​ 操作を示しています。 ```xml ``` 次の例は、​`Content-Length`​ エンコードを使用するために ​`requestStreamingMode` ​`NEVER`​ を使用して設定された HTTP の ​**Requester**​ 操作を示しています。 ```xml ``` ## [](#oauth2-認証コード許可種別の問題のトラブルシューティング)OAuth2 認証コード許可種別の問題のトラブルシューティング Mule アプリケーションで OAuth2 認証コード許可種別認証を使用しており、​`_[No access token found. Verify that you have authenticated before trying to execute an operation to the API (アクセストークンが見つかりません。API に対する操作を実行する前に、認証されていることを確認してください)]_`​ メッセージが返された場合、次の可能な解決策を確認してください。 - 認証 URL をコールする。OAuth ポリシーに従って、認証 URL を少なくとも 1 回コールしてアクセストークンを取得する必要があります。 - オブジェクトストアを使用する。アクセストークンをオブジェクトストアに保存します。トークンが期限切れになったら、更新トークンを使用して新しいアクセストークンを取得してオブジェクトストアを更新します。 - DocuSign Connector を使用する。DocuSign Connector を使用して認証とトークンをより効果的に管理することを検討します。 ## [](#一般的なスローの理解)一般的なスローの理解 ここでは、一般的なスローメッセージとその解決方法を示します。 - HTTP:BAD\_REQUEST たとえばヘッダーサイズが最大値を超えている場合に、構文が無効であるためサーバーが要求を理解できません。 - HTTP:CLIENT\_SECURITY 外部エンティティによって適用されたセキュリティの問題が発生しました。 - HTTP:CONNECTIVITY A problem occurred and a connection could not be established. (問題が発生して接続を確立できませんでした。) - HTTP:FORBIDDEN クライアントにコンテンツへのアクセス権がないため、サーバーが要求されたリソースの提供を拒否しています。 - HTTP:INTERNAL\_SERVER\_ERROR サーバーで要求を満たせない状況が発生しました。 - HTTP:METHOD\_NOT\_ALLOWED サーバーの要求メソッドが対象リソースでサポートされていません。 - HTTP:NOT\_ACCEPTABLE サーバーが要求のプロアクティブコンテンツネゴシエーションヘッダーで定義された許容可能な値のリストに一致する応答を生成できません。 - HTTP:NOT\_FOUND The server could not find the requested resource. (サーバーは要求されたリソースを見つけることができませんでした。) - HTTP:PARSING \[非推奨ですが、互換性を確保するために保持されています。\] 解析メカニズムが削除されました。 - HTTP:RETRY\_EXHAUSTED The maximum number of retries for the operation is reached. (操作の最大試行回数に達しました。) - HTTP:SECURITY リクエスター認証に失敗しました。 - HTTP:SERVICE\_UNAVAILABLE サーバーはメンテナンスまたは過負荷のためにダウンしているため、要求を管理できません。 - HTTP:TIMEOUT http:requester によって送信された要求がタイムアウトになりました。 - HTTP:TOO\_MANY\_REQUESTS 特定の期間内に送信された要求が多すぎます。 - HTTP:UNAUTHORIZED 要求された応答を取得するための認証に失敗したか、認証がまだ提供されていません。 - HTTP:UNSUPPORTED\_MEDIA\_TYPE サーバーで要求されたデータのメディア形式がサポートされていません。 - HTTP:BAD\_GATEWAY 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが無効な応答を受信しました。 - HTTP:GATEWAY\_TIMEOUT 要求を管理するためにゲートウェイまたはプロキシとして機能するサーバーが指定された時間内に応答を受信しませんでした。 - HTTP:BASIC\_AUTHENTICATION HTTP の ​\*Request\*​ 操作でサービスに要求を送信するための基本認証がないか、指定されたログイン情報が正しくありません。 ## [](#関連情報)関連情報 - [HTTP Listener の設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-listener-ref) - [HTTP Request 設定リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-request-ref) # HTTP Connector の例 HTTP 用 Anypoint Connector (HTTP Connector) を最大限活用するには、次の Anypoint Studio でのコネクタの設定例を参照してください。 ## [](#http-connector-studio-の例)HTTP Connector (Studio) の例 次の例は、Anypoint Studio でコネクタを設定する方法を示しています。 - [ブラウザーからのアプリケーションの開始](https://docs.mulesoft.com/jp/http-connector/1.10/http-start-app-brows-task) ブラウザーからアプリケーションを開始するように HTTP ​**Listener**​ 操作を設定します。 - [REST サービスのコンシューム](https://docs.mulesoft.com/jp/http-connector/1.10/http-consume-web-svc-task) REST サービスをコンシュームするように HTTP ​**Listener**​ 操作と HTTP ​**Request**​ 操作の両方を設定します。 - [静的リソースの読み込み](https://docs.mulesoft.com/jp/http-connector/1.10/http-load-static-res-task) 静的リソースを読み込むように HTTP ​**Listener**​ 操作と HTTP ​**Load static resource**​ 操作の両方を設定します。 - [異なるパスへの HTTP 要求の転送](https://docs.mulesoft.com/jp/http-connector/1.10/http-conn-route-diff-paths-task) HTTP 要求を別のパスにルーティングするように HTTP ​**Listener**​ 操作と ​**Logger**​ コンポーネントを設定します。 - [HTTP メソッドに基づく要求の転送](https://docs.mulesoft.com/jp/http-connector/1.10/http-route-methods-based-task) HTTP メソッドに基づいて要求をルーティングするように HTTP ​**Listener**​ ソースを設定します。 - [フォームの投稿](https://docs.mulesoft.com/jp/http-connector/1.10/http-post-form-task) HTTP 要求を送信してフォームを投稿するように HTTP ​**Listener**​ ソース、​**Choice Router**​ コンポーネント、​**Set Payload**​ コンポーネントを設定します。 - [HTTP エラー状況と理由の設定](https://docs.mulesoft.com/jp/http-connector/1.10/http-error-status-reason-phrase-task) ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定するように HTTP ​**Listener**​ ソース、​**Validation Module**​ コンポーネント、​**Set Payload**​ コンポーネント、​**Error Handler**​ コンポーネントを設定します。 - [HTTP 基本セキュリティ検索条件の設定](https://docs.mulesoft.com/jp/http-connector/1.10/http-connector-basic-security) **Basic Security Filter**​ 操作を設定して基本認証を適用します。 # HTTP Connector の例 次の例は、Anypoint Studio でコネクタを設定する方法を示しています。 - [ブラウザーからのアプリケーションの開始](https://docs.mulesoft.com/jp/http-connector/1.5/http-start-app-brows-task) ブラウザーからアプリケーションを開始するように HTTP Listener 操作を設定します。 - [REST サービスのコンシューム](https://docs.mulesoft.com/jp/http-connector/1.5/http-consume-web-svc-task) REST サービスをコンシュームするように HTTP Listener 操作と HTTP Request 操作の両方を設定します。 - [静的リソースの読み込み](https://docs.mulesoft.com/jp/http-connector/1.5/http-load-static-res-task) 静的リソースを読み込むように HTTP Listener 操作と HTTP Load Static Resource 操作の両方を設定します。 - [異なるパスへの HTTP 要求の転送](https://docs.mulesoft.com/jp/http-connector/1.5/http-conn-route-diff-paths-task) HTTP 要求を別のパスにルーティングするように HTTP Listener 操作と Logger コンポーネントを設定します。 - [HTTP メソッドに基づく要求の転送](https://docs.mulesoft.com/jp/http-connector/1.5/http-route-methods-based-task) HTTP メソッドに基づいて要求をルーティングするように HTTP リスナーを設定します。 - [フォームの投稿](https://docs.mulesoft.com/jp/http-connector/1.5/http-post-form-task) HTTP 要求を送信してフォームを投稿するように HTTP リスナー、Choice Router コンポーネント、Set Payload コンポーネントを設定します。 - [HTTP エラー状況と理由の設定](https://docs.mulesoft.com/jp/http-connector/1.5/http-error-status-reason-phrase-task) ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定するように HTTP Listener 操作、Validation Module コンポーネント、Set Payload コンポーネント、Error Handler コンポーネントを設定します。 # HTTP Connector の例 HTTP 用 Anypoint Connector (HTTP Connector) を最大限活用するには、次の Anypoint Studio でのコネクタの設定例を参照してください。 ## [](#http-connector-studio-の例)HTTP Connector (Studio) の例 次の例は、Anypoint Studio でコネクタを設定する方法を示しています。 - [ブラウザーからのアプリケーションの開始](https://docs.mulesoft.com/jp/http-connector/1.6/http-start-app-brows-task) ブラウザーからアプリケーションを開始するように HTTP ​**Listener**​ 操作を設定します。 - [REST サービスのコンシューム](https://docs.mulesoft.com/jp/http-connector/1.6/http-consume-web-svc-task) REST サービスをコンシュームするように HTTP ​**Listener**​ 操作と HTTP ​**Request**​ 操作の両方を設定します。 - [静的リソースの読み込み](https://docs.mulesoft.com/jp/http-connector/1.6/http-load-static-res-task) 静的リソースを読み込むように HTTP ​**Listener**​ 操作と HTTP ​**Load static resource**​ 操作の両方を設定します。 - [異なるパスへの HTTP 要求の転送](https://docs.mulesoft.com/jp/http-connector/1.6/http-conn-route-diff-paths-task) HTTP 要求を別のパスにルーティングするように HTTP ​**Listener**​ 操作と ​**Logger**​ コンポーネントを設定します。 - [HTTP メソッドに基づく要求の転送](https://docs.mulesoft.com/jp/http-connector/1.6/http-route-methods-based-task) HTTP メソッドに基づいて要求をルーティングするように HTTP ​**Listener**​ ソースを設定します。 - [フォームの投稿](https://docs.mulesoft.com/jp/http-connector/1.6/http-post-form-task) HTTP 要求を送信してフォームを投稿するように HTTP ​**Listener**​ ソース、​**Choice Router**​ コンポーネント、​**Set Payload**​ コンポーネントを設定します。 - [HTTP エラー状況と理由の設定](https://docs.mulesoft.com/jp/http-connector/1.6/http-error-status-reason-phrase-task) ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定するように HTTP ​**Listener**​ ソース、​**Validation Module**​ コンポーネント、​**Set Payload**​ コンポーネント、​**Error Handler**​ コンポーネントを設定します。 # HTTP Connector の例 HTTP 用 Anypoint Connector (HTTP Connector) を最大限活用するには、次の Anypoint Studio でのコネクタの設定例を参照してください。 ## [](#http-connector-studio-の例)HTTP Connector (Studio) の例 次の例は、Anypoint Studio でコネクタを設定する方法を示しています。 - [ブラウザーからのアプリケーションの開始](https://docs.mulesoft.com/jp/http-connector/1.7/http-start-app-brows-task) ブラウザーからアプリケーションを開始するように HTTP ​**Listener**​ 操作を設定します。 - [REST サービスのコンシューム](https://docs.mulesoft.com/jp/http-connector/1.7/http-consume-web-svc-task) REST サービスをコンシュームするように HTTP ​**Listener**​ 操作と HTTP ​**Request**​ 操作の両方を設定します。 - [静的リソースの読み込み](https://docs.mulesoft.com/jp/http-connector/1.7/http-load-static-res-task) 静的リソースを読み込むように HTTP ​**Listener**​ 操作と HTTP ​**Load static resource**​ 操作の両方を設定します。 - [異なるパスへの HTTP 要求の転送](https://docs.mulesoft.com/jp/http-connector/1.7/http-conn-route-diff-paths-task) HTTP 要求を別のパスにルーティングするように HTTP ​**Listener**​ 操作と ​**Logger**​ コンポーネントを設定します。 - [HTTP メソッドに基づく要求の転送](https://docs.mulesoft.com/jp/http-connector/1.7/http-route-methods-based-task) HTTP メソッドに基づいて要求をルーティングするように HTTP ​**Listener**​ ソースを設定します。 - [フォームの投稿](https://docs.mulesoft.com/jp/http-connector/1.7/http-post-form-task) HTTP 要求を送信してフォームを投稿するように HTTP ​**Listener**​ ソース、​**Choice Router**​ コンポーネント、​**Set Payload**​ コンポーネントを設定します。 - [HTTP エラー状況と理由の設定](https://docs.mulesoft.com/jp/http-connector/1.7/http-error-status-reason-phrase-task) ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定するように HTTP ​**Listener**​ ソース、​**Validation Module**​ コンポーネント、​**Set Payload**​ コンポーネント、​**Error Handler**​ コンポーネントを設定します。 # HTTP Connector の例 HTTP 用 Anypoint Connector (HTTP Connector) を最大限活用するには、次の Anypoint Studio でのコネクタの設定例を参照してください。 ## [](#http-connector-studio-の例)HTTP Connector (Studio) の例 次の例は、Anypoint Studio でコネクタを設定する方法を示しています。 - [ブラウザーからのアプリケーションの開始](https://docs.mulesoft.com/jp/http-connector/1.8/http-start-app-brows-task) ブラウザーからアプリケーションを開始するように HTTP ​**Listener**​ 操作を設定します。 - [REST サービスのコンシューム](https://docs.mulesoft.com/jp/http-connector/1.8/http-consume-web-svc-task) REST サービスをコンシュームするように HTTP ​**Listener**​ 操作と HTTP ​**Request**​ 操作の両方を設定します。 - [静的リソースの読み込み](https://docs.mulesoft.com/jp/http-connector/1.8/http-load-static-res-task) 静的リソースを読み込むように HTTP ​**Listener**​ 操作と HTTP ​**Load static resource**​ 操作の両方を設定します。 - [異なるパスへの HTTP 要求の転送](https://docs.mulesoft.com/jp/http-connector/1.8/http-conn-route-diff-paths-task) HTTP 要求を別のパスにルーティングするように HTTP ​**Listener**​ 操作と ​**Logger**​ コンポーネントを設定します。 - [HTTP メソッドに基づく要求の転送](https://docs.mulesoft.com/jp/http-connector/1.8/http-route-methods-based-task) HTTP メソッドに基づいて要求をルーティングするように HTTP ​**Listener**​ ソースを設定します。 - [フォームの投稿](https://docs.mulesoft.com/jp/http-connector/1.8/http-post-form-task) HTTP 要求を送信してフォームを投稿するように HTTP ​**Listener**​ ソース、​**Choice Router**​ コンポーネント、​**Set Payload**​ コンポーネントを設定します。 - [HTTP エラー状況と理由の設定](https://docs.mulesoft.com/jp/http-connector/1.8/http-error-status-reason-phrase-task) ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定するように HTTP ​**Listener**​ ソース、​**Validation Module**​ コンポーネント、​**Set Payload**​ コンポーネント、​**Error Handler**​ コンポーネントを設定します。 # HTTP Connector の例 HTTP 用 Anypoint Connector (HTTP Connector) を最大限活用するには、次の Anypoint Studio でのコネクタの設定例を参照してください。 ## [](#http-connector-studio-の例)HTTP Connector (Studio) の例 次の例は、Anypoint Studio でコネクタを設定する方法を示しています。 - [ブラウザーからのアプリケーションの開始](https://docs.mulesoft.com/jp/http-connector/1.9/http-start-app-brows-task) ブラウザーからアプリケーションを開始するように HTTP ​**Listener**​ 操作を設定します。 - [REST サービスのコンシューム](https://docs.mulesoft.com/jp/http-connector/1.9/http-consume-web-svc-task) REST サービスをコンシュームするように HTTP ​**Listener**​ 操作と HTTP ​**Request**​ 操作の両方を設定します。 - [静的リソースの読み込み](https://docs.mulesoft.com/jp/http-connector/1.9/http-load-static-res-task) 静的リソースを読み込むように HTTP ​**Listener**​ 操作と HTTP ​**Load static resource**​ 操作の両方を設定します。 - [異なるパスへの HTTP 要求の転送](https://docs.mulesoft.com/jp/http-connector/1.9/http-conn-route-diff-paths-task) HTTP 要求を別のパスにルーティングするように HTTP ​**Listener**​ 操作と ​**Logger**​ コンポーネントを設定します。 - [HTTP メソッドに基づく要求の転送](https://docs.mulesoft.com/jp/http-connector/1.9/http-route-methods-based-task) HTTP メソッドに基づいて要求をルーティングするように HTTP ​**Listener**​ ソースを設定します。 - [フォームの投稿](https://docs.mulesoft.com/jp/http-connector/1.9/http-post-form-task) HTTP 要求を送信してフォームを投稿するように HTTP ​**Listener**​ ソース、​**Choice Router**​ コンポーネント、​**Set Payload**​ コンポーネントを設定します。 - [HTTP エラー状況と理由の設定](https://docs.mulesoft.com/jp/http-connector/1.9/http-error-status-reason-phrase-task) ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定するように HTTP ​**Listener**​ ソース、​**Validation Module**​ コンポーネント、​**Set Payload**​ コンポーネント、​**Error Handler**​ コンポーネントを設定します。 - [HTTP 基本セキュリティ検索条件の設定](https://docs.mulesoft.com/jp/http-connector/1.9/http-connector-basic-security) **Basic Security Filter**​ 操作を設定して基本認証を適用します。 # HTTP Connector の基本セキュリティ検索条件の設定 個人の詳細や注文履歴など、顧客の機密情報にアクセスする API を公開する Mule アプリケーションを考えてみましょう。この API をセキュリティ保護するために、ユーザー名とパスワードの組み合わせを使用して基本セキュリティを実装したいと考えます。HTTP 用 Anypoint Connector (HTTP Connector) の ​**Basic Security Filter**​ 操作を使用することで、基本認証を適用できます。 次の例は、認証済みのユーザーのみが保護された API にアクセスできるように ​**Basic Security Filter**​ 操作を設定する方法を示しています。 1. Anypoint Studio で ​**\[HTTP Listener\]**​ ソースをフローに追加します。これは、受信 API 要求のエントリポイントになります。 2. **\[Basic Security Filter\]**​ 操作を ​**\[HTTP Listener\]**​ の後にドラッグします。この操作により、リクエストヘッダーで指定されたユーザー名とパスワードが検証されます。 3. フローから ​**\[Basic Security Filter\]**​ 操作を選択します。 4. 認証の ​**\[Realm (レルム)\]**​ と ​**\[Security providers (セキュリティプロバイダー)\]**​ を使用して、​**Basic Security Filter**​ 操作を設定します。 5. API 要求の処理、顧客情報の取得、他の操作の実行を行うロジックを追加して、引き続き Mule フローを構築します。 ![Anypoint Studio の \[HTTP Basic Security Filter (HTTP 基本セキュリティ検索条件)\] 設定ウィンドウ](_images/http-basic-security.png) **\[Configuration XML (設定 XML)\]**​ では、設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Connector の例](https://docs.mulesoft.com/jp/http-connector/1.10/http-connector-examples) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation) # HTTP Connector の基本セキュリティ検索条件の設定 個人の詳細や注文履歴など、顧客の機密情報にアクセスする API を公開する Mule アプリケーションを考えてみましょう。この API をセキュリティ保護するために、ユーザー名とパスワードの組み合わせを使用して基本セキュリティを実装したいと考えます。HTTP 用 Anypoint Connector (HTTP Connector) の ​**Basic Security Filter**​ 操作を使用することで、基本認証を適用できます。 次の例は、認証済みのユーザーのみが保護された API にアクセスできるように ​**Basic Security Filter**​ 操作を設定する方法を示しています。 1. Anypoint Studio で ​**\[HTTP Listener\]**​ ソースをフローに追加します。これは、受信 API 要求のエントリポイントになります。 2. **\[Basic Security Filter\]**​ 操作を ​**\[HTTP Listener\]**​ の後にドラッグします。この操作により、リクエストヘッダーで指定されたユーザー名とパスワードが検証されます。 3. フローから ​**\[Basic Security Filter\]**​ 操作を選択します。 4. 目的のユーザー名とパスワードのログイン情報を使用して ​**Basic Security Filter**​ 操作を設定します。 5. API 要求の処理、顧客情報の取得、他の操作の実行を行うロジックを追加して、引き続き Mule フローを構築します。 ![Anypoint Studio の \[HTTP Basic Security Filter (HTTP 基本セキュリティ検索条件)\] 設定ウィンドウ](_images/http-basic-security.png) **\[Configuration XML (設定 XML)\]**​ では、設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Connector の例](https://docs.mulesoft.com/jp/http-connector/1.9/http-connector-examples) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation) # HTTP Connector の概要 (Studio) HTTP Connector は、HTTP または HTTPS プロトコルを使用して次のいずれかの操作を実行します。 - リスナー HTTP 要求を受信すると Mule フローの実行を開始します。 - Request HTTP サービスをコンシュームします。 - 基本セキュリティ条件 サービスへの要求を保護し、認証します。 - 静的リソースの読み込み スクリプトなどのリソースをファイルシステムからアプリケーションに取り込み、リスナーで返せるようにします。 Mule パレットから、\[HTTP Connector Listener (HTTP Connector リスナー)\] 操作を新しいフローにドラッグします。ホスト、ポート、パスを設定するまで、エラー状態が発生します。次のように、2 つの HTTP Connector インスタンスを使用する HTTP サービスのコンシュームをアプリケーションに簡単に設定できます。 - リスナー設定: パス = ​`/somepath`​ (例) - Request 設定: パスまたは URL = コンシュームする HTTP サービスの URL アプリケーションを実行し、ブラウザーに ​`/somepath`​ で終わる URL を入力します。リスナーが要求を検出し、フローが実行されます。 トランスポートレベルセキュリティ (TLS) を使用して HTTPS 要求の送受信を行うように、HTTP Connector を設定できます。 ## [](#関連情報)関連情報 - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-connector-xml-reference) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation) # HTTP Connector の移行の概要 (Design Center) HTTP 用 Anypoint Connector (HTTP Connector) の Mule 4 バージョンは、Mule 3 バージョンのコネクタとは主に次のように異なります。 - `http:listener-config`​ 要素に内部接続要素 ​`http:listener-connection`​ が新規追加されています。 - `http:request-config`​ 要素に内部接続要素 ​`http:request-connection`​ が新規追加されています。 - 要求のソースパラメーターは HTTP 本文パラメーターに置き換えられ、リスナーの応答とエラー応答に導入されます。 - HTTP ​**Listener**​ ソースと HTTP ​**Request**​ 操作は属性を返します。 - HTTP ​**Request**​ 設定の ​**\[Enabled Cookie (有効化された Cookie)\]**​ パラメーターが ​`true`​ (デフォルト) に設定されています。 - DataWeave で特殊な MIME タイプが管理されるようになったため、HTTP 解析は削除されました。DataWeave 構文を使用してペイロードの書き込みと読み取りを行います。 - HTTP ​**Load static resource**​ 操作の XML コード ​`static-resource-handler`​ は ​`load-static-resource`​ に名前が変更されます。 - HTTP リスナー属性と HTTP 要求属性にアクセスするために、次の DataWeave 構文で Mule Expression Language (MEL) 式が置き換えられ、過去のプロパティにアクセスできるようにします。 `#[attributes.]` Mule 3.x MEL 式と Mule 4 DataWeave 式のマッピングについての詳細は、​[「HTTP Connector XML リファレンス」](https://docs.mulesoft.com/jp/http-connector/1.10/http-connector-xml-reference)​を参照してください。 - Mule 4 で次の構成要素が削除されました。 - 要求ビルダー ​`http:request-builder`​ と応答ビルダー ​`http:response-builder` - ワーカースレッドプロファイル ビルダーは、要求、応答、エラー応答に置き換えられました。DataWeave 式を使用することで、パラメーターを作成する必要がなくなりました。 ## [](#関連情報)関連情報 - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-connector-xml-reference) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation) # HTTP Connector の移行の概要 (Design Center) Mule Runtime 4.0 以降の HTTP Connector の以下の主要な変更は、移行に影響する可能性があります。 - `http:listener-config`​ および ​`http:request-config`​ には内部接続要素が新規追加されています。 - 要求のソースパラメーターは HTTP 本文オプションに置き換えられ、Listener の応答とエラー応答に導入されます。 - HTTP Listener および Request コンポーネントは属性を返します。この属性には以前のプロパティがすべて含まれます。 - HTTP ​**Request**​ 設定の ​**\[Enabled Cookie (有効化された Cookie)\]**​ パラメーターが ​`true`​ (デフォルト) に設定されています。 - HTTP 解析は削除されました。DataWeave が特殊な MIME タイプを処理するようになりました。こうしたペイロードの読み取りと書き込みの両方に使用できます。 - `static-resource-handler`​ は ​`load-static-resource`​ という名前に変更されました。 - ソースの HTTP Listener および HTTP Request 属性にアクセスするために、次の DataWeave 構文で Mule Expression Language (MEL) 式が置き換えられ、過去のプロパティにアクセスできるようにします。 `#[attributes.]` 「HTTP Connector XML リファレンス」で Mule 3.x MEL 式と Mule 4.0 DataWeave 式がマップされています。 Mule Runtime 4.0 で次の構成要素が削除されました。 - 要求ビルダー ​`http:request-builder`​ と応答ビルダー ​`http:response-builder` - ワーカースレッドプロファイル ビルダーは、要求、応答、エラー応答に置き換えられました。DataWeave 式を使用することで、パラメーターを作成する必要がなくなりました。 ## [](#関連情報)関連情報 - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-connector-xml-reference) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation) # HTTP Connector の移行の概要 (Design Center) HTTP 用 Anypoint Connector (HTTP Connector) の Mule 4 バージョンは、Mule 3 バージョンのコネクタとは主に次のように異なります。 - `http:listener-config`​ 要素に内部接続要素 ​`http:listener-connection`​ が新規追加されています。 - `http:request-config`​ 要素に内部接続要素 ​`http:request-connection`​ が新規追加されています。 - 要求のソースパラメーターは HTTP 本文パラメーターに置き換えられ、リスナーの応答とエラー応答に導入されます。 - HTTP ​**Listener**​ ソースと HTTP ​**Request**​ 操作は属性を返します。 - HTTP ​**Request**​ 設定の ​**\[Enabled Cookie (有効化された Cookie)\]**​ パラメーターが ​`true`​ (デフォルト) に設定されています。 - DataWeave で特殊な MIME タイプが管理されるようになったため、HTTP 解析は削除されました。DataWeave 構文を使用してペイロードの書き込みと読み取りを行います。 - HTTP ​**Load static resource**​ 操作の XML コード ​`static-resource-handler`​ は ​`load-static-resource`​ に名前が変更されます。 - HTTP リスナー属性と HTTP 要求属性にアクセスするために、次の DataWeave 構文で Mule Expression Language (MEL) 式が置き換えられ、過去のプロパティにアクセスできるようにします。 `#[attributes.]` Mule 3.x MEL 式と Mule 4 DataWeave 式のマッピングについての詳細は、​[「HTTP Connector XML リファレンス」](https://docs.mulesoft.com/jp/http-connector/1.6/http-connector-xml-reference)​を参照してください。 - Mule 4 で次の構成要素が削除されました。 - 要求ビルダー ​`http:request-builder`​ と応答ビルダー ​`http:response-builder` - ワーカースレッドプロファイル ビルダーは、要求、応答、エラー応答に置き換えられました。DataWeave 式を使用することで、パラメーターをビルドする必要がなくなりました。 ## [](#関連情報)関連情報 - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-connector-xml-reference) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-documentation) # HTTP Connector の移行の概要 (Design Center) HTTP 用 Anypoint Connector (HTTP Connector) の Mule 4 バージョンは、Mule 3 バージョンのコネクタとは主に次のように異なります。 - `http:listener-config`​ 要素に内部接続要素 ​`http:listener-connection`​ が新規追加されています。 - `http:request-config`​ 要素に内部接続要素 ​`http:request-connection`​ が新規追加されています。 - 要求のソースパラメーターは HTTP 本文パラメーターに置き換えられ、リスナーの応答とエラー応答に導入されます。 - HTTP ​**Listener**​ ソースと HTTP ​**Request**​ 操作は属性を返します。 - HTTP ​**Request**​ 設定の ​**\[Enabled Cookie (有効化された Cookie)\]**​ パラメーターが ​`true`​ (デフォルト) に設定されています。 - DataWeave で特殊な MIME タイプが管理されるようになったため、HTTP 解析は削除されました。DataWeave 構文を使用してペイロードの書き込みと読み取りを行います。 - HTTP ​**Load static resource**​ 操作の XML コード ​`static-resource-handler`​ は ​`load-static-resource`​ に名前が変更されます。 - HTTP リスナー属性と HTTP 要求属性にアクセスするために、次の DataWeave 構文で Mule Expression Language (MEL) 式が置き換えられ、過去のプロパティにアクセスできるようにします。 `#[attributes.]` Mule 3.x MEL 式と Mule 4 DataWeave 式のマッピングについての詳細は、​[「HTTP Connector XML リファレンス」](https://docs.mulesoft.com/jp/http-connector/1.7/http-connector-xml-reference)​を参照してください。 - Mule 4 で次の構成要素が削除されました。 - 要求ビルダー ​`http:request-builder`​ と応答ビルダー ​`http:response-builder` - ワーカースレッドプロファイル ビルダーは、要求、応答、エラー応答に置き換えられました。DataWeave 式を使用することで、パラメーターを作成する必要がなくなりました。 ## [](#関連情報)関連情報 - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-connector-xml-reference) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-documentation) # HTTP Connector の移行の概要 (Design Center) HTTP 用 Anypoint Connector (HTTP Connector) の Mule 4 バージョンは、Mule 3 バージョンのコネクタとは主に次のように異なります。 - `http:listener-config`​ 要素に内部接続要素 ​`http:listener-connection`​ が新規追加されています。 - `http:request-config`​ 要素に内部接続要素 ​`http:request-connection`​ が新規追加されています。 - 要求のソースパラメーターは HTTP 本文パラメーターに置き換えられ、リスナーの応答とエラー応答に導入されます。 - HTTP ​**Listener**​ ソースと HTTP ​**Request**​ 操作は属性を返します。 - HTTP ​**Request**​ 設定の ​**\[Enabled Cookie (有効化された Cookie)\]**​ パラメーターが ​`true`​ (デフォルト) に設定されています。 - DataWeave で特殊な MIME タイプが管理されるようになったため、HTTP 解析は削除されました。DataWeave 構文を使用してペイロードの書き込みと読み取りを行います。 - HTTP ​**Load static resource**​ 操作の XML コード ​`static-resource-handler`​ は ​`load-static-resource`​ に名前が変更されます。 - HTTP リスナー属性と HTTP 要求属性にアクセスするために、次の DataWeave 構文で Mule Expression Language (MEL) 式が置き換えられ、過去のプロパティにアクセスできるようにします。 `#[attributes.]` Mule 3.x MEL 式と Mule 4 DataWeave 式のマッピングについての詳細は、​[「HTTP Connector XML リファレンス」](https://docs.mulesoft.com/jp/http-connector/1.8/http-connector-xml-reference)​を参照してください。 - Mule 4 で次の構成要素が削除されました。 - 要求ビルダー ​`http:request-builder`​ と応答ビルダー ​`http:response-builder` - ワーカースレッドプロファイル ビルダーは、要求、応答、エラー応答に置き換えられました。DataWeave 式を使用することで、パラメーターを作成する必要がなくなりました。 ## [](#関連情報)関連情報 - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-connector-xml-reference) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation) # HTTP Connector の移行の概要 (Design Center) HTTP 用 Anypoint Connector (HTTP Connector) の Mule 4 バージョンは、Mule 3 バージョンのコネクタとは主に次のように異なります。 - `http:listener-config`​ 要素に内部接続要素 ​`http:listener-connection`​ が新規追加されています。 - `http:request-config`​ 要素に内部接続要素 ​`http:request-connection`​ が新規追加されています。 - 要求のソースパラメーターは HTTP 本文パラメーターに置き換えられ、リスナーの応答とエラー応答に導入されます。 - HTTP ​**Listener**​ ソースと HTTP ​**Request**​ 操作は属性を返します。 - HTTP ​**Request**​ 設定の ​**\[Enabled Cookie (有効化された Cookie)\]**​ パラメーターが ​`true`​ (デフォルト) に設定されています。 - DataWeave で特殊な MIME タイプが管理されるようになったため、HTTP 解析は削除されました。DataWeave 構文を使用してペイロードの書き込みと読み取りを行います。 - HTTP ​**Load static resource**​ 操作の XML コード ​`static-resource-handler`​ は ​`load-static-resource`​ に名前が変更されます。 - HTTP リスナー属性と HTTP 要求属性にアクセスするために、次の DataWeave 構文で Mule Expression Language (MEL) 式が置き換えられ、過去のプロパティにアクセスできるようにします。 `#[attributes.]` Mule 3.x MEL 式と Mule 4 DataWeave 式のマッピングについての詳細は、​[「HTTP Connector XML リファレンス」](https://docs.mulesoft.com/jp/http-connector/1.9/http-connector-xml-reference)​を参照してください。 - Mule 4 で次の構成要素が削除されました。 - 要求ビルダー ​`http:request-builder`​ と応答ビルダー ​`http:response-builder` - ワーカースレッドプロファイル ビルダーは、要求、応答、エラー応答に置き換えられました。DataWeave 式を使用することで、パラメーターを作成する必要がなくなりました。 ## [](#関連情報)関連情報 - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-connector-xml-reference) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation) # HTTP Connector リファレンス HTTP Connector v1.5 HTTP 用 Anypoint Connector (HTTP Connector) を使用して、HTTP 要求を処理および実行します。このクラスは、拡張定義としてのみ機能します。このコネクタの設定は、サーバー機能 (​``​) とクライアント機能 (​``​) に分けられます。 リリースノート: [HTTP Connector Release Notes](https://docs.mulesoft.com/jp/release-notes/connector/connector-http)​ (HTTP Connector リリースノート) ## [](#設定)設定 * * * ### [](#listenerConfig)リスナー設定 HttpListener の設定要素。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

Listener Interceptor (リスナーインターセプター)

要求および応答イベントに適用されるリスナーインターセプター。

#### [](#接続種別)接続種別 ##### [](#listenerConfig_listener)リスナー HttpListener の接続プロバイダーで、HttpServer インスタンスの作成を処理します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。プロトコルとして HTTPS が設定されている場合、ユーザーはこの listener-config の tls:context 子要素で少なくともキーストアを設定する必要があります。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

要求が受信されるポート。

x

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。

30000

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連付けられたソース)関連付けられたソース - [Listener](#listener) * * * ### [](#requestConfig)要求設定 HTTP 要求の設定要素。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、対象になった瞬間にプラットフォームでインスタンスの有効期限が切れるという意味ではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

/

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。デフォルト値は true です。

true

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。AUTO (自動) の場合、メソッドに応じて異なります (GET、HEAD、および OPTIONS では本文は送信されません)。

AUTO

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、要求はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Enable Cookies (Cookie を有効化)

Boolean (ブール)

true の場合、HTTP 応答で受信した Cookie は保存され、後続の HTTP 要求で送信されます。

true

Default Headers (デフォルトヘッダー)

メッセージに含まれる必要があるデフォルト HTTP ヘッダー。

クエリパラメーター

応答に含まれる必要があるデフォルトクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

メッセージをパブリッシュするときに相関 id を指定するかどうか。操作レベルで指定されるカスタム相関 id と、現在のイベントから引用されるデフォルト相関 id の両方に適用されます。

AUTO

Preserve Headers Case (ヘッダーの文字を保持)

Boolean (ブール)

デフォルトでは、ヘッダーキーは内部的に小文字で保存されます。これは、ヘッダー処理のパフォーマンス向上が目的で、RFC の仕様どおりに正しく機能します。<p> サーバーが特定の文字のヘッダーを期待している場合、このフラグを true に設定してヘッダーキーの文字を保持できます。

false

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒)。この値が存在しない場合、コネクタは Mule 設定のデフォルトの応答タイムアウト (10000) を使用します。

10000

Response Validator (応答バリデーター)

応答のデフォルトのエラー処理を設定します。

#### [](#接続種別-2)接続種別 ##### [](#requestConfig_request)Request HTTP 要求の接続プロバイダーで、HttpExtensionClient インスタンスの作成を処理します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Proxy Config (プロキシ設定)

次のいずれかになります。

プロキシ経由のアウトバウンド接続の再利用可能な設定要素。プロキシ要素では、必ずホスト名およびポート属性を定義し、必要に応じてユーザー名とパスワードを定義できます。

Authentication (認証)

次のいずれかになります。

HTTP 要求で使用する認証方式。

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。HTTPS がプロトコルとして設定された場合、この listener-config の ​tls:context​ 子要素を定義することで、ユーザーが tls/SSL 設定をカスタマイズできます。​tls:context​ が定義されていない場合、デフォルトの JVM 証明書が通信の確立に使用されます。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

Port (ポート)

Number (数値)

要求の送信先となるポート。プロトコル属性が HTTP (デフォルト) の場合、デフォルト値は 80、プロトコル属性が HTTPS の場合、デフォルト値は 443 です。

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Max Connections (最大接続数)

Number (数値)

同時に開いた状態にできるアウトバウンド接続の最大数。デフォルトでは、接続数は無制限です。

-1

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。

30000

Stream Response (応答のストリーミング)

Boolean (ブール)

受信応答をストリーミングする必要があるかどうか。つまり、すべてのヘッダーが解析されたらすぐに処理を続行し、本文は到着するとストリーミングされます。設定されたバッファサイズによっては、メモリに収まらず、容量が空くまで処理が停止する可能性があるため、有効になっている場合は徐々に応答を読み取る必要があります。

false

Response Buffer Size (応答バッファサイズ)

Number (数値)

HTTP 応答が保存されるバッファの領域 (バイト)。

1024

Client Socket Properties (クライアントソケットのプロパティ)

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連操作)関連操作 - [Request](#request) ## [](#操作)操作 ### [](#request)Request `` HTTP サービスをコンシュームします。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

GET

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Path (パス)

String (文字列)

要求の送信先となるパス。

URL

String (文字列)

要求を送信する URL。

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

URI パラメーター

Object (オブジェクト)

要求の作成に使用する必要がある URI パラメーター。

クエリパラメーター

Object (オブジェクト)

要求に含まれる必要があるクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Correlation Id (相関 ID)

String (文字列)

カスタム相関 ID の設定を許可します。

Response Validator (応答バリデーター)

応答のエラー処理を設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。この項目はこの操作では使用しません。

#### [](#出力)出力

型

Any (任意)

Attributes Type (属性型)

#### [](#設定-2)設定。 - [要求設定](#requestConfig) #### [](#スロー)スロー - HTTP:BAD\_REQUEST - HTTP:CLIENT\_SECURITY - HTTP:CONNECTIVITY - HTTP:FORBIDDEN - HTTP:INTERNAL\_SERVER\_ERROR - HTTP:METHOD\_NOT\_ALLOWED - HTTP:NOT\_ACCEPTABLE - HTTP:NOT\_FOUND - HTTP:PARSING - HTTP:RETRY\_EXHAUSTED - HTTP:SECURITY - HTTP:SERVICE\_UNAVAILABLE - HTTP:TIMEOUT - HTTP:TOO\_MANY\_REQUESTS - HTTP:UNAUTHORIZED - HTTP:UNSUPPORTED\_MEDIA\_TYPE - HTTP:BAD\_GATEWAY - HTTP:GATEWAY\_TIMEOUT ### [](#basicSecurityFilter)Basic Security Filter `` 受信した HTTP 要求を認証します。リスナーコンポーネントの後に使用する必要があります。 #### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Realm (レルム)

String (文字列)

認証レルム。

x

セキュリティプロバイダー

Array of String (文字列の配列)

認証に使用する代理セキュリティプロバイダー。設定内に複数のセキュリティマネージャーが定義されている場合に使用します。

Attributes (属性)

Authorization​ ヘッダーを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

#### [](#スロー-2)スロー - HTTP:BASIC\_AUTHENTICATION - MULE:SERVER\_SECURITY ### [](#loadStaticResource)Load Static Resource `` リソースをルックアップするための要求パスを使用して、HTTP で使用する静的なコンテンツを提供します。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Resource Base Path (リソースベースパス)

String (文字列)

ドキュメントの提供元であるリソースベース。例: /Users/maxthemule/resources

x

Default File (デフォルトファイル)

String (文字列)

ディレクトリが指定されたときに提供するデフォルトファイル。デフォルト値は ​index.html​ です。

index.html

Attributes (属性)

必須リソースを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-2)出力

型

Any (任意)

Attributes Type (属性型)

Any (任意)

#### [](#スロー-3)スロー - HTTP:NOT\_FOUND ## [](#ソース)ソース ### [](#listener)Listener `` HTTP 要求のリスナーを表します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

HTTP リスナー設定で指定されたパスからの相対パス。

x

Allowed Methods (許可されるメソッド)

String (文字列)

このリスナーで許可される HTTP メソッドのカンマ区切りリスト。すべてのメソッドを許可する場合は、この属性を定義しないでください。

Response Streaming Mode (応答ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

応答をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、応答はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

Status Code (状況コード)

Number (数値)

応答に含まれる必要がある HTTP 状況コード。

Reason Phrase (理由を示す語句)

String (文字列)

応答に含まれる必要がある HTTP の理由を示す語句。

#### [](#出力-3)出力

型

Any (任意)

Attributes Type (属性型)

#### [](#設定-3)設定。 - [リスナー設定](#listenerConfig) ## [](#型)型 ### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)トラストストア
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が行われず、攻撃に対して脆弱な接続がレンダリングされます。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能であれば、現在のクラスパスとファイルシステムに対して解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、ファイルにある最初のキーがデフォルトで使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom Ocsp Responder (カスタム Ocsp レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)CRL File (CRL ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#CorsInterceptorWrapper)CORS Interceptor Wrapper (Cors インターセプターラッパー)
項目 型 説明 デフォルト値 必須

Cors Interceptor (Cors インターセプター)

要求が CORS 仕様に準拠していることを検証し、応答に対して適宜アクションを実行するインターセプター。

x

### [](#CorsListenerInterceptor)CORS Listener Interceptor (Cors リスナーインターセプター)
項目 型 説明 デフォルト値 必須

Allow Credentials (ログイン情報を許可)

Boolean (ブール)

false

Origins (発生源)

Array (配列)。次のいずれかになります。

x

### [](#HttpRequestAttributes)HTTP Request Attributes (HTTP 要求属性)
項目 型 説明 デフォルト値 必須

Listener Path (リスナーパス)

String (文字列)

要求が受信された場所のフルパス。旧 ​http.listener.path​。

x

相対パス

String (文字列)

ベースパスを考慮しない、要求が受信された場所のパス。旧 ​http.relative.path​。

x

Masked Request Path (マスクされた要求パス)

String (文字列)

リスナーパスをマスクし、差異を取り込んで算出されたパス。

1.4.0 以降

x

バージョン

String (文字列)

要求の HTTP バージョン。旧 ​http.version​。

x

Schema (スキーマ)

String (文字列)

要求の HTTP スキーム。旧 ​http.scheme​。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。旧 ​http.method​。

x

Request Uri (要求 URI)

String (文字列)

要求の完全 URI。旧 ​http.request.uri​。

x

Query String (クエリ文字列)

String (文字列)

要求のクエリ文字列。旧 ​http.query.string​。

x

Local Address (ローカルアドレス)

String (文字列)

サーバーからのローカルホストアドレス。

x

Remote Address (リモートアドレス)

String (文字列)

送信者からのリモートホストアドレス。旧 ​http.remote.address​。

x

Client Certificate (クライアント証明書)

Any (任意)

クライアント証明書 (双方向 TLS が有効な場合)。旧 ​http.client.cert​。

Query Params (クエリパラメーター)

Object (オブジェクト)

解析した文字列からビルドしたクエリパラメーターのマッピング。旧 ​http.query.params​。

x

Uri Params (URI パラメーター)

Object (オブジェクト)

要求パスから抽出した URI パラメーター。旧 ​http.uri.params​。

x

Request Path (要求パス)

String (文字列)

要求されたフルパス。旧 ​http.request.path​。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。旧 properties (プロパティ)。

x

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

これは、ストリームをコンシュームし、ストリームへのランダムアクセスを提供する目的で割り当てられるメモリの容量です。ストリームに含まれているデータがこのバッファに適合できる量を超えている場合、bufferSizeIncrement 属性に従ってバッファが拡張され、上限は maxInMemorySize となります。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、どれだけ拡張するか。値を 0 以下に設定すると、バッファが拡張されません。つまり、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

これは、バッファで使用できるメモリの最大量。これを超えると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

Max In Memory Size (最大メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用できる最大メモリを定義します。これを超えると、コンテンツはディスクにバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

正常に処理されずにプロセス失敗メッセージがトリガーされるまでにメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

ObjectStore

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#TcpClientSocketProperties)TCP クライアントソケットのプロパティ
項目 型 説明 デフォルト値 必須

Connection Timeout (接続タイムアウト)

Number (数値)

タイムアウトで失敗する前に、リモートサーバーへの接続中に待機する時間。設定されたリクエスターホストが複数の IP アドレスに解決される場合、ホストはそれぞれの IP アドレスへの接続を試みます。 そのため、すべての接続がタイムアウトになる場合、解決された IP アドレスの数だけグローバル接続タイムアウトの時間が長くなります。

30000

Send Tcp No Delay (遅延なく TCP を送信)

Boolean (ブール)

効率を高めるために送信データを収集して直ちにデータを送信するかどうかを示します。

true

Linger (延長)

Number (数値)

残りのデータが正しく送信されるように、ソケットが閉じるまでにかかるミリ秒単位の時間。

Keep Alive (キープアライブ)

Boolean (ブール)

開いているソケット接続を閉じるかどうかを示します。

false

Fail On Unresolved Host (ホストを解決できない場合は失敗)

Boolean (ブール)

作成時のソケットがエンドポイントに設定されているホストを解決できない場合に失敗するかどうかを示します。

true

Send Buffer Size (送信バッファサイズ)

Number (数値)

データ送信時のバイト単位のバッファのサイズ。

Receive Buffer Size (受信バッファサイズ)

Number (数値)

データ受信時のバイト単位のバッファのサイズ。

Client Timeout (クライアントタイムアウト)

Number (数値)

ブロック操作で失敗するまでにソケットが待機するミリ秒単位の時間。

Reuse Address (アドレスの再利用)

Boolean (ブール)

ポートをバインドしようとするときに、設定済みのポートを再利用する (​true​) か失敗にする (​false​) かを示します。

true

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime 属性の時間単位

### [](#defaultHeader)Default Header (デフォルトヘッダー)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

x

Value (値)

String (文字列)

x

### [](#QueryParam)Query Param (クエリパラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

x

Value (値)

String (文字列)

x

### [](#HttpResponseAttributes)HTTP Response Attributes (HTTP 応答属性)
項目 型 説明 デフォルト値 必須

Status Code (状況コード)

Number (数値)

応答の HTTP 状況コード。旧 ​http.status​。

x

Reason Phrase (理由を示す語句)

String (文字列)

応答の HTTP の理由を示す語句。旧 ​http.reason​。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。旧 properties (プロパティ)。

x

### [](#BasicAuthentication)基本認証
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#DigestAuthentication)ダイジェスト認証
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#NtlmAuthentication)NTLM 認証
項目 型 説明 デフォルト値 必須

Domain (ドメイン)

String (文字列)

認証するドメイン。

Workstation (ワークステーション)

String (文字列)

認証するワークステーション。

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#proxy)Proxy (プロキシ)
項目 型 説明 デフォルト値 必須

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#ntlm-proxy)NTLM Proxy (NTLM プロキシ)
項目 型 説明 デフォルト値 必須

Ntlm Domain (NTLM ドメイン)

String (文字列)

プロキシに対して認証するドメイン。

x

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#SuccessStatusCodeValidator)Success Status Code Validator (成功状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#FailureStatusCodeValidator)Failure Status Code Validator (失敗状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#origin)Origin (発生源)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

ブラウザーがリソースを読み込める発生元の URL。

x

Access Control Max Age (アクセス制御最大保持期間)

Number (数値)

プリフライト要求の結果をキャッシュする秒単位の時間。

x

Allowed Methods (許可されるメソッド)

Method (メソッド)​ の配列

発生元からリソースにアクセスするときに許可される HTTP メソッドを示します。

Allowed Headers (許可されるヘッダー)

Header (ヘッダー)​ の配列

プリフライト要求で、実際の要求中に使用する HTTP ヘッダーを示します。

Expose Headers (ヘッダーを公開)

Header (ヘッダー)​ の配列

要求で公開されるレスポンスヘッダー。

### [](#Method)Method (メソッド)
項目 型 説明 デフォルト値 必須

Method Name (メソッド名)

String (文字列)

HTTP メソッド名。

x

### [](#Header)Header (ヘッダー)
項目 型 説明 デフォルト値 必須

Header Name (ヘッダー名)

String (文字列)

HTTP ヘッダー名。

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector リファレンス HTTP Connector v1.6 HTTP 用 Anypoint Connector (HTTP Connector) を使用して、HTTP 要求を処理および実行します。このクラスは、拡張定義としてのみ機能します。このコネクタの設定は、サーバー機能 (​``​) とクライアント機能 (​``​) に分けられます。 リリースノート: [HTTP Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-http) ## [](#設定)設定 * * * ### [](#listenerConfig)リスナー設定 HttpListener の設定要素。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

Listener Interceptor (リスナーインターセプター)

要求および応答イベントに適用されるリスナーインターセプター。

Reject Invalid Transfer Encoding (無効な転送エンコードを拒否)

Boolean (ブール)

true​ の場合、Transfer-Encoding ヘッダーの値が無効の要求は拒否され、400 Bad Request (400 不正な要求) メッセージが表示されます。有効な値は ​chunked​、​deflate​、​compress​、​identity​、​gzip​ です。これらの値は、​RFC-7230​ と ​RFC-2616​ で定義されます。

false

#### [](#接続種別)接続種別 ##### [](#listenerConfig_listener)リスナー HttpListener の接続プロバイダーで、HttpServer インスタンスの作成を処理します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。プロトコルとして HTTPS が設定されている場合、ユーザーはこの listener-config の tls:context 子要素で少なくともキーストアを設定する必要があります。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

要求が受信されるポート。

x

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。タイムアウトの発生直前に既存の接続で要求を送信した場合の Remotely Closed (リモート終了) 例外を回避するために、リスナーのデフォルトのタイムアウトはリクエスターのデフォルトのタイムアウトより大きくなります。

40000

Read Timeout (読み取りタイムアウト)

Number (数値)

リスナーがメッセージの受信中に待機する必要がある最大時間 (ミリ秒単位)。

30000

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連付けられたソース)関連付けられたソース - [Listener](#listener) * * * ### [](#requestConfig)要求設定 HTTP 要求の設定要素。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、対象になった瞬間にプラットフォームでインスタンスの有効期限が切れるという意味ではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

/

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。デフォルト値は true です。

true

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。AUTO (自動) の場合、メソッドに応じて異なります (GET、HEAD、および OPTIONS では本文は送信されません)。

AUTO

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、要求はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Enable Cookies (Cookie を有効化)

Boolean (ブール)

true の場合、HTTP 応答で受信した Cookie は保存され、後続の HTTP 要求で送信されます。

true

Default Headers (デフォルトヘッダー)

メッセージに含まれる必要があるデフォルト HTTP ヘッダー。

クエリパラメーター

応答に含まれる必要があるデフォルトクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

メッセージをパブリッシュするときに相関 id を指定するかどうか。操作レベルで指定されるカスタム相関 id と、現在のイベントから引用されるデフォルト相関 id の両方に適用されます。

AUTO

Preserve Headers Case (ヘッダーの文字を保持)

Boolean (ブール)

デフォルトでは、ヘッダーキーは内部的に小文字で保存されます。これは、ヘッダー処理のパフォーマンス向上が目的で、RFC の仕様どおりに正しく機能します。<p> サーバーが特定の文字のヘッダーを期待している場合、このフラグを true に設定してヘッダーキーの文字を保持できます。

false

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒)。この値が存在しない場合、コネクタは Mule 設定のデフォルトの応答タイムアウト (10000) を使用します。

10000

Response Validator (応答バリデーター)

応答のデフォルトのエラー処理を設定します。

#### [](#接続種別-2)接続種別 ##### [](#requestConfig_request)要求 HTTP 要求の接続プロバイダーで、HttpExtensionClient インスタンスの作成を処理します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Proxy Config (プロキシ設定)

次のいずれかになります。

プロキシ経由のアウトバウンド接続の再利用可能な設定要素。プロキシ要素では、必ずホスト名およびポート属性を定義し、必要に応じてユーザー名とパスワードを定義できます。

認証

次のいずれかになります。

HTTP 要求で使用する認証方式。

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。HTTPS がプロトコルとして設定された場合、この listener-config の ​tls:context​ 子要素を定義することで、ユーザーが tls/SSL 設定をカスタマイズできます。​tls:context​ が定義されていない場合、デフォルトの JVM 証明書が通信の確立に使用されます。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

Port (ポート)

Number (数値)

要求の送信先となるポート。プロトコル属性が HTTP (デフォルト) の場合、デフォルト値は 80、プロトコル属性が HTTPS の場合、デフォルト値は 443 です。

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Max Connections (最大接続数)

Number (数値)

同時に開いた状態にできるアウトバウンド接続の最大数。デフォルトでは、接続数は無制限です。

-1

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。

30000

Stream Response (応答のストリーミング)

Boolean (ブール)

受信応答をストリーミングする必要があるかどうか。つまり、すべてのヘッダーが解析されたらすぐに処理を続行し、本文は到着するとストリーミングされます。設定されたバッファサイズによっては、メモリに収まらず、容量が空くまで処理が停止する可能性があるため、有効になっている場合は徐々に応答を読み取る必要があります。

false

Response Buffer Size (応答バッファサイズ)

Number (数値)

HTTP 応答が保存されるバッファの領域 (バイト)。

1024

Client Socket Properties (クライアントソケットのプロパティ)

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連操作)関連操作 - [Request](#request) ## [](#操作)操作 ### [](#request)Request `` HTTP サービスをコンシュームします。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

GET

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Path (パス)

String (文字列)

要求の送信先となるパス。

URL

String (文字列)

要求を送信する URL。

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

URI パラメーター

Object (オブジェクト)

要求の作成に使用する必要がある URI パラメーター。

クエリパラメーター

Object (オブジェクト)

要求に含まれる必要があるクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Correlation Id (相関 ID)

String (文字列)

カスタム相関 ID の設定を許可します。

Response Validator (応答バリデーター)

応答のエラー処理を設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。この項目はこの操作では使用しません。

#### [](#出力)出力

Type (型)

Any (任意)

Attributes Type (属性型)

#### [](#設定-2)設定。 - [要求設定](#requestConfig) #### [](#スロー)スロー - HTTP:BAD\_REQUEST - HTTP:CLIENT\_SECURITY - HTTP:CONNECTIVITY - HTTP:FORBIDDEN - HTTP:INTERNAL\_SERVER\_ERROR - HTTP:METHOD\_NOT\_ALLOWED - HTTP:NOT\_ACCEPTABLE - HTTP:NOT\_FOUND - HTTP:PARSING - HTTP:RETRY\_EXHAUSTED - HTTP:SECURITY - HTTP:SERVICE\_UNAVAILABLE - HTTP:TIMEOUT - HTTP:TOO\_MANY\_REQUESTS - HTTP:UNAUTHORIZED - HTTP:UNSUPPORTED\_MEDIA\_TYPE - HTTP:BAD\_GATEWAY - HTTP:GATEWAY\_TIMEOUT ### [](#basicSecurityFilter)Basic Security Filter `` 受信した HTTP 要求を認証します。リスナーコンポーネントの後に使用する必要があります。 #### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Realm (レルム)

String (文字列)

認証レルム。

x

セキュリティプロバイダー

Array of String (文字列の配列)

認証に使用する代理セキュリティプロバイダー。設定内に複数のセキュリティマネージャーが定義されている場合に使用します。

Attributes (属性)

Authorization​ ヘッダーを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

#### [](#スロー-2)スロー - HTTP:BASIC\_AUTHENTICATION - MULE:SERVER\_SECURITY ### [](#loadStaticResource)Load Static Resource `` リソースをルックアップするための要求パスを使用して、HTTP で使用する静的なコンテンツを提供します。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Resource Base Path (リソースベースパス)

String (文字列)

ドキュメントの提供元であるリソースベース。例: /Users/maxthemule/resources

x

Default File (デフォルトファイル)

String (文字列)

ディレクトリが指定されたときに提供するデフォルトファイル。デフォルト値は ​index.html​ です。

index.html

Attributes (属性)

必須リソースを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-2)出力

Type (型)

Any (任意)

Attributes Type (属性型)

Any (任意)

#### [](#スロー-3)スロー - HTTP:NOT\_FOUND ## [](#ソース)ソース ### [](#listener)Listener `` HTTP 要求のリスナーを表します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

HTTP リスナー設定で指定されたパスからの相対パス。

x

Allowed Methods (許可されるメソッド)

String (文字列)

このリスナーで許可される HTTP メソッドのカンマ区切りリスト。すべてのメソッドを許可する場合は、この属性を定義しないでください。

Response Streaming Mode (応答ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

応答をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、応答はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

Status Code (状況コード)

Number (数値)

応答に含まれる必要がある HTTP 状況コード。

Reason Phrase (理由を示す語句)

String (文字列)

応答に含まれる必要がある HTTP の理由を示す語句。

#### [](#出力-3)出力

Type (型)

Any (任意)

Attributes Type (属性型)

#### [](#設定-3)設定。 - [リスナー設定](#listenerConfig) ## [](#型)型 ### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

トラストストア

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)トラストストア
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が行われず、攻撃に対して脆弱な接続がレンダリングされます。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能であれば、現在のクラスパスとファイルシステムに対して解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、ファイルにある最初のキーがデフォルトで使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom Ocsp Responder (カスタム Ocsp レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)CRL File (CRL ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#CorsInterceptorWrapper)CORS Interceptor Wrapper (Cors インターセプターラッパー)
項目 型 説明 デフォルト値 必須

Cors Interceptor (Cors インターセプター)

要求が CORS 仕様に準拠していることを検証し、応答に対して適宜アクションを実行するインターセプター。

x

### [](#CorsListenerInterceptor)CORS Listener Interceptor (Cors リスナーインターセプター)
項目 型 説明 デフォルト値 必須

Allow Credentials (ログイン情報を許可)

Boolean (ブール)

false

Origins (発生源)

Array (配列)。次のいずれかになります。

x

### [](#HttpRequestAttributes)HTTP Request Attributes (HTTP 要求属性) メッセージ属性の使用方法についての詳細は、​[メッセージ属性に関する](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​ドキュメントを参照してください。
項目 型 説明 デフォルト値 必須

Listener Path (リスナーパス)

String (文字列)

要求が受信された場所のフルパス。

x

Raw Request Path (未加工要求パス)

String (文字列)

受信時にエンコードされる、要求されたフルパス。 1.5.0 以降

x

相対パス

String (文字列)

ベースパスを考慮しない、要求が受信された場所のパス。

x

Masked Request Path (マスクされた要求パス)

String (文字列)

リスナーパスをマスクし、差異を取り込んで算出されたパス。 これは、null の場合にのみ計算されます。

1.4.0 以降

x

Version (バージョン)

String (文字列)

要求の HTTP バージョン。

x

Schema (スキーマ)

String (文字列)

要求の HTTP スキーム。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

x

Request Uri (要求 URI)

String (文字列)

要求の完全 URI。

x

Raw Request Uri (未加工要求 URI)

String (文字列)

受信時にエンコードされる、要求のフル URI。 1.5.0 以降

x

Query String (クエリ文字列)

String (文字列)

要求のクエリ文字列。

x

Local Address (ローカルアドレス)

String (文字列)

サーバーからのローカルホストアドレス。

x

Remote Address (リモートアドレス)

String (文字列)

送信者からのリモートホストアドレス。

x

Client Certificate (クライアント証明書)

Any (任意)

クライアント証明書 (双方向 TLS が有効な場合)。

Query Params (クエリパラメーター)

Object (オブジェクト)

解析した文字列からビルドしたクエリパラメーターのマッピング。

x

Uri Params (URI パラメーター)

Object (オブジェクト)

要求パスから抽出した URI パラメーター。

x

Request Path (要求パス)

String (文字列)

要求されたフルパス。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。

x

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

これは、ストリームをコンシュームし、ストリームへのランダムアクセスを提供する目的で割り当てられるメモリの容量です。ストリームに含まれているデータがこのバッファに適合できる量を超えている場合、bufferSizeIncrement 属性に従ってバッファが拡張され、上限は maxInMemorySize となります。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、どれだけ拡張するか。値を 0 以下に設定すると、バッファが拡張されません。つまり、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

これは、バッファで使用できるメモリの最大量。これを超えると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

Max In Memory Size (最大メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用できる最大メモリを定義します。これを超えると、コンテンツはディスクにバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

正常に処理されずにプロセス失敗メッセージがトリガーされるまでにメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

ObjectStore

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#TcpClientSocketProperties)TCP クライアントソケットのプロパティ
項目 型 説明 デフォルト値 必須

Connection Timeout (接続タイムアウト)

Number (数値)

タイムアウトで失敗する前に、リモートサーバーへの接続中に待機する時間。設定されたリクエスターホストが複数の IP アドレスに解決される場合、ホストはそれぞれの IP アドレスへの接続を試みます。 そのため、すべての接続がタイムアウトになる場合、解決された IP アドレスの数だけグローバル接続タイムアウトの時間が長くなります。

30000

Send Tcp No Delay (遅延なく TCP を送信)

Boolean (ブール)

効率を高めるために送信データを収集して直ちにデータを送信するかどうかを示します。

true

Linger (延長)

Number (数値)

残りのデータが正しく送信されるように、ソケットが閉じるまでにかかるミリ秒単位の時間。

Keep Alive (キープアライブ)

Boolean (ブール)

開いているソケット接続を閉じるかどうかを示します。

false

Fail On Unresolved Host (ホストを解決できない場合は失敗)

Boolean (ブール)

作成時のソケットがエンドポイントに設定されているホストを解決できない場合に失敗するかどうかを示します。

true

Send Buffer Size (送信バッファサイズ)

Number (数値)

データ送信時のバイト単位のバッファのサイズ。

Receive Buffer Size (受信バッファサイズ)

Number (数値)

データ受信時のバイト単位のバッファのサイズ。

Client Timeout (クライアントタイムアウト)

Number (数値)

ブロック操作で失敗するまでにソケットが待機するミリ秒単位の時間。

Reuse Address (アドレスの再利用)

Boolean (ブール)

ポートをバインドしようとするときに、設定済みのポートを再利用する (​true​) か失敗にする (​false​) かを示します。

true

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime 属性の時間単位

### [](#defaultHeader)Default Header (デフォルトヘッダー)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

x

Value (値)

String (文字列)

x

### [](#QueryParam)Query Param (クエリパラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

x

Value (値)

String (文字列)

x

### [](#HttpResponseAttributes)HTTP Response Attributes (HTTP 応答属性) メッセージ属性の使用方法についての詳細は、​[メッセージ属性に関する](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​ドキュメントを参照してください。
項目 型 説明 デフォルト値 必須

Status Code (状況コード)

Number (数値)

応答の HTTP 状況コード。

x

Reason Phrase (理由を示す語句)

String (文字列)

応答の HTTP の理由を示す語句。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。

x

### [](#BasicAuthentication)基本認証
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#DigestAuthentication)ダイジェスト認証
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#NtlmAuthentication)NTLM 認証
項目 型 説明 デフォルト値 必須

Domain (ドメイン)

String (文字列)

認証するドメイン。

Workstation (ワークステーション)

String (文字列)

認証するワークステーション。

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#proxy)Proxy (プロキシ)
項目 型 説明 デフォルト値 必須

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#ntlm-proxy)NTLM Proxy
項目 型 説明 デフォルト値 必須

Ntlm Domain (NTLM ドメイン)

String (文字列)

プロキシに対して認証するドメイン。

x

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#SuccessStatusCodeValidator)Success Status Code Validator (成功状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#FailureStatusCodeValidator)Failure Status Code Validator (失敗状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#origin)Origin (発生源)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

ブラウザーがリソースを読み込める発生元の URL。

x

Access Control Max Age (アクセス制御最大保持期間)

Number (数値)

プリフライト要求の結果をキャッシュする秒単位の時間。

x

Allowed Methods (許可されるメソッド)

Method (メソッド)​ の配列

発生元からリソースにアクセスするときに許可される HTTP メソッドを示します。

Allowed Headers (許可されるヘッダー)

Header (ヘッダー)​ の配列

プリフライト要求で、実際の要求中に使用する HTTP ヘッダーを示します。

Expose Headers (ヘッダーを公開)

Header (ヘッダー)​ の配列

要求で公開されるレスポンスヘッダー。

### [](#Method)Method (メソッド)
項目 型 説明 デフォルト値 必須

Method Name (メソッド名)

String (文字列)

HTTP メソッド名。

x

### [](#Header)Header (ヘッダー)
項目 型 説明 デフォルト値 必須

ヘッダー名

String (文字列)

HTTP ヘッダー名。

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Connector リファレンス HTTP Connector v1.7 HTTP 用 Anypoint Connector (HTTP Connector) を使用して、HTTP 要求を処理および実行します。このクラスは、拡張定義としてのみ機能します。このコネクタの設定は、サーバー機能 (​``​) とクライアント機能 (​``​) に分けられます。 リリースノート: [HTTP Connector Release Notes](https://docs.mulesoft.com/jp/release-notes/connector/connector-http)​ (HTTP Connector リリースノート) ## [](#設定)設定 * * * ### [](#listenerConfig)リスナー設定 HttpListener の設定要素。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

Listener Interceptor (リスナーインターセプター)

要求および応答イベントに適用されるリスナーインターセプター。

Reject Invalid Transfer Encoding (無効な転送エンコードを拒否)

Boolean (ブール)

true​ の場合、Transfer-Encoding ヘッダーの値が無効の要求は拒否され、400 Bad Request (400 不正な要求) メッセージが表示されます。有効な値は ​chunked​、​deflate​、​compress​、​identity​、​gzip​ です。これらの値は、​RFC-7230​ と ​RFC-2616​ で定義されます。

false

#### [](#接続種別)接続種別 ##### [](#listenerConfig_listener)リスナー HttpListener の接続プロバイダーで、HttpServer インスタンスの作成を処理します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。プロトコルとして HTTPS が設定されている場合、ユーザーはこの listener-config の tls:context 子要素で少なくともキーストアを設定する必要があります。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

要求が受信されるポート。

x

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。タイムアウトの発生直前に既存の接続で要求を送信した場合の Remotely Closed (リモート終了) 例外を回避するために、リスナーのデフォルトのタイムアウトはリクエスターのデフォルトのタイムアウトより大きくなります。

40000

Read Timeout (読み取りタイムアウト)

Number (数値)

リスナーがメッセージの受信中に待機する必要がある最大時間 (ミリ秒単位)。

30000

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連付けられたソース)関連付けられたソース - [Listener](#listener) * * * ### [](#requestConfig)要求設定 HTTP 要求の設定要素。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、対象になった瞬間にプラットフォームでインスタンスの有効期限が切れるという意味ではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。

Base Path (ベースパス)

String (文字列)

この設定を参照するすべての要求で使用されるベースパス。

/

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。デフォルト値は true です。

true

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。AUTO (自動) の場合、メソッドに応じて異なります (GET、HEAD、および OPTIONS では本文は送信されません)。

AUTO

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、要求はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Enable Cookies (Cookie を有効化)

Boolean (ブール)

true の場合、HTTP 応答で受信した Cookie は保存され、後続の HTTP 要求で送信されます。

true

Default Headers (デフォルトヘッダー)

メッセージに含まれる必要があるデフォルト HTTP ヘッダー。

クエリパラメーター

応答に含まれる必要があるデフォルトクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

メッセージをパブリッシュするときに相関 id を指定するかどうか。操作レベルで指定されるカスタム相関 id と、現在のイベントから引用されるデフォルト相関 id の両方に適用されます。

AUTO

Preserve Headers Case (ヘッダーの文字を保持)

Boolean (ブール)

デフォルトでは、ヘッダーキーは内部的に小文字で保存されます。これは、ヘッダー処理のパフォーマンス向上が目的で、RFC の仕様どおりに正しく機能します。<p> サーバーが特定の文字のヘッダーを期待している場合、このフラグを true に設定してヘッダーキーの文字を保持できます。

false

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間 (ミリ秒)。この値が存在しない場合、コネクタは Mule 設定のデフォルトの応答タイムアウト (10000) を使用します。

10000

Response Validator (応答バリデーター)

応答のデフォルトのエラー処理を設定します。

#### [](#接続種別-2)接続種別 ##### [](#requestConfig_request)Request HTTP 要求の接続プロバイダーで、HttpExtensionClient インスタンスの作成を処理します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Proxy Config (プロキシ設定)

次のいずれかになります。

プロキシ経由のアウトバウンド接続の再利用可能な設定要素。プロキシ要素では、必ずホスト名およびポート属性を定義し、必要に応じてユーザー名とパスワードを定義できます。

Authentication (認証)

次のいずれかになります。

HTTP 要求で使用する認証方式。

TLS Configuration (TLS 設定)

TLS

TLS 設定要素への参照。これにより、この設定で HTTPS が有効になります。

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • HTTP

  • HTTPS

通信に使用するプロトコル。有効な値は HTTP と HTTPS です。デフォルト値は HTTP です。HTTPS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。HTTPS がプロトコルとして設定された場合、この listener-config の ​tls:context​ 子要素を定義することで、ユーザーが tls/SSL 設定をカスタマイズできます。​tls:context​ が定義されていない場合、デフォルトの JVM 証明書が通信の確立に使用されます。

HTTP

Host (ホスト)

String (文字列)

要求の送信先となるホスト。

Port (ポート)

Number (数値)

要求の送信先となるポート。プロトコル属性が HTTP (デフォルト) の場合、デフォルト値は 80、プロトコル属性が HTTPS の場合、デフォルト値は 443 です。

Use Persistent Connections (永続接続を使用)

Boolean (ブール)

false の場合、各接続は最初の要求が完了すると終了します。

true

Max Connections (最大接続数)

Number (数値)

同時に開いた状態にできるアウトバウンド接続の最大数。デフォルトでは、接続数は無制限です。

-1

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

接続が終了するまでのアイドル状態を維持できるミリ秒。この属性の値は、永続接続が有効になっている場合にのみ使用されます。

30000

Stream Response (応答のストリーミング)

Boolean (ブール)

受信応答をストリーミングする必要があるかどうか。つまり、すべてのヘッダーが解析されたらすぐに処理を続行し、本文は到着するとストリーミングされます。設定されたバッファサイズによっては、メモリに収まらず、容量が空くまで処理が停止する可能性があるため、有効になっている場合は徐々に応答を読み取る必要があります。

false

Response Buffer Size (応答バッファサイズ)

Number (数値)

HTTP 応答が保存されるバッファの領域 (バイト)。

1024

Client Socket Properties (クライアントソケットのプロパティ)

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#関連操作)関連操作 - [Request](#request) ## [](#操作)操作 ### [](#request)Request `` HTTP サービスをコンシュームします。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

GET

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Path (パス)

String (文字列)

要求の送信先となるパス。

URL

String (文字列)

要求を送信する URL。

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。

Send Body Mode (本文送信モード)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS

  • AUTO

  • NEVER

要求に本文が含まれる必要があるかどうかを定義します。

Request Streaming Mode (要求ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

要求をストリーミングで送信する必要があるかどうかを定義します。

Response Timeout (応答タイムアウト)

Number (数値)

要求要素が HTTP 応答を待機中のフローの実行をブロックする最大時間。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

URI パラメーター

Object (オブジェクト)

要求の作成に使用する必要がある URI パラメーター。

クエリパラメーター

Object (オブジェクト)

要求に含まれる必要があるクエリパラメーター。

Send Correlation Id (送信相関 ID)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

アウトバウンド相関 ID を含めるかどうかのオプション

Correlation Id (相関 ID)

String (文字列)

カスタム相関 ID の設定を許可します。

Response Validator (応答バリデーター)

応答のエラー処理を設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。この項目はこの操作では使用しません。

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

Output Encoding (出力エンコード)

String (文字列)

この操作で出力されるペイロードのエンコード。

#### [](#出力)出力

型

Any (任意)

Attributes Type (属性型)

#### [](#設定-2)設定。 - [要求設定](#requestConfig) #### [](#スロー)スロー - HTTP:BAD\_REQUEST - HTTP:CLIENT\_SECURITY - HTTP:CONNECTIVITY - HTTP:FORBIDDEN - HTTP:INTERNAL\_SERVER\_ERROR - HTTP:METHOD\_NOT\_ALLOWED - HTTP:NOT\_ACCEPTABLE - HTTP:NOT\_FOUND - HTTP:PARSING - HTTP:RETRY\_EXHAUSTED - HTTP:SECURITY - HTTP:SERVICE\_UNAVAILABLE - HTTP:TIMEOUT - HTTP:TOO\_MANY\_REQUESTS - HTTP:UNAUTHORIZED - HTTP:UNSUPPORTED\_MEDIA\_TYPE - HTTP:BAD\_GATEWAY - HTTP:GATEWAY\_TIMEOUT ### [](#basicSecurityFilter)Basic Security Filter `` 受信した HTTP 要求を認証します。リスナーコンポーネントの後に使用する必要があります。 #### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Realm (レルム)

String (文字列)

認証レルム。

x

セキュリティプロバイダー

Array of String (文字列の配列)

認証に使用する代理セキュリティプロバイダー。設定内に複数のセキュリティマネージャーが定義されている場合に使用します。

Attributes (属性)

Authorization​ ヘッダーを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

#### [](#スロー-2)スロー - HTTP:BASIC\_AUTHENTICATION - MULE:SERVER\_SECURITY ### [](#loadStaticResource)Load Static Resource `` リソースをルックアップするための要求パスを使用して、HTTP で使用する静的なコンテンツを提供します。 #### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Resource Base Path (リソースベースパス)

String (文字列)

ドキュメントの提供元であるリソースベース。例: /Users/maxthemule/resources

x

Default File (デフォルトファイル)

String (文字列)

ディレクトリが指定されたときに提供するデフォルトファイル。デフォルト値は ​index.html​ です。

index.html

Attributes (属性)

必須リソースを確認するための HTTP リスナーソースからの HttpRequestAttributes。

#[attributes]

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-2)出力

型

Any (任意)

Attributes Type (属性型)

Any (任意)

#### [](#スロー-3)スロー - HTTP:NOT\_FOUND ## [](#ソース)ソース ### [](#listener)Listener `` HTTP 要求のリスナーを表します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

HTTP リスナー設定で指定されたパスからの相対パス。

x

Allowed Methods (許可されるメソッド)

String (文字列)

このリスナーで許可される HTTP メソッドのカンマ区切りリスト。すべてのメソッドを許可する場合は、この属性を定義しないでください。

Response Streaming Mode (応答ストリーミングモード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • ALWAYS

  • NEVER

応答をストリーミングで送信する必要があるかどうかを定義します。この属性が存在しない場合、動作はペイロードの種別に応じて異なります (ストリーミングするのは InputStream の場合のみ)。true に設定されている場合、常にストリーミングします。false に設定されている場合、一切ストリーミングしません。ストリーミングの実行時、応答はユーザーに Transfer-Encoding: chunked で送信されます。

AUTO

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時、このソースをプライマリノード上でのみ実行する必要があるかどうか。

Streaming Strategy (ストリーミング戦略)

反復可能ストリームを使用すべきかどうか、およびその動作を設定します。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Body (本文)

Any (任意)

応答メッセージの本文。

#[payload]

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

Status Code (状況コード)

Number (数値)

応答に含まれる必要がある HTTP 状況コード。

Reason Phrase (理由を示す語句)

String (文字列)

応答に含まれる必要がある HTTP の理由を示す語句。

#### [](#出力-3)出力

型

Any (任意)

Attributes Type (属性型)

#### [](#設定-3)設定。 - [リスナー設定](#listenerConfig) ## [](#型)型 ### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)Trust Store (トラストストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が行われず、攻撃に対して脆弱な接続がレンダリングされます。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能であれば、現在のクラスパスとファイルシステムに対して解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、ファイルにある最初のキーがデフォルトで使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom Ocsp Responder (カスタム Ocsp レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)CRL File (CRL ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#CorsInterceptorWrapper)CORS Interceptor Wrapper (Cors インターセプターラッパー)
項目 型 説明 デフォルト値 必須

Cors Interceptor (Cors インターセプター)

要求が CORS 仕様に準拠していることを検証し、応答に対して適宜アクションを実行するインターセプター。

x

### [](#CorsListenerInterceptor)CORS Listener Interceptor (Cors リスナーインターセプター)
項目 型 説明 デフォルト値 必須

Allow Credentials (ログイン情報を許可)

Boolean (ブール)

false

Origins (発生源)

Array (配列)。次のいずれかになります。

x

### [](#HttpRequestAttributes)HTTP Request Attributes (HTTP 要求属性) メッセージ属性の使用方法についての詳細は、​[メッセージ属性に関する](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​ドキュメントを参照してください。
項目 型 説明 デフォルト値 必須

Listener Path (リスナーパス)

String (文字列)

要求が受信された場所のフルパス。

x

Raw Request Path (未加工要求パス)

String (文字列)

受信時にエンコードされる、要求されたフルパス。 1.5.0 以降

x

相対パス

String (文字列)

ベースパスを考慮しない、要求が受信された場所のパス。

x

Masked Request Path (マスクされた要求パス)

String (文字列)

リスナーパスをマスクし、差異を取り込んで算出されたパス。 これは、null の場合にのみ計算されます。

1.4.0 以降

x

バージョン

String (文字列)

要求の HTTP バージョン。

x

Schema (スキーマ)

String (文字列)

要求の HTTP スキーム。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

x

Request Uri (要求 URI)

String (文字列)

要求の完全 URI。

x

Raw Request Uri (未加工要求 URI)

String (文字列)

受信時にエンコードされる、要求のフル URI。 1.5.0 以降

x

Query String (クエリ文字列)

String (文字列)

要求のクエリ文字列。

x

Local Address (ローカルアドレス)

String (文字列)

サーバーからのローカルホストアドレス。

x

Remote Address (リモートアドレス)

String (文字列)

送信者からのリモートホストアドレス。

x

Client Certificate (クライアント証明書)

Any (任意)

クライアント証明書 (双方向 TLS が有効な場合)。

Query Params (クエリパラメーター)

Object (オブジェクト)

解析した文字列からビルドしたクエリパラメーターのマッピング。

x

Uri Params (URI パラメーター)

Object (オブジェクト)

要求パスから抽出した URI パラメーター。

x

Request Path (要求パス)

String (文字列)

要求されたフルパス。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。

x

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

これは、ストリームをコンシュームし、ストリームへのランダムアクセスを提供する目的で割り当てられるメモリの容量です。ストリームに含まれているデータがこのバッファに適合できる量を超えている場合、bufferSizeIncrement 属性に従ってバッファが拡張され、上限は maxInMemorySize となります。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、どれだけ拡張するか。値を 0 以下に設定すると、バッファが拡張されません。つまり、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

これは、バッファで使用できるメモリの最大量。これを超えると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

Max In Memory Size (最大メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用できる最大メモリを定義します。これを超えると、コンテンツはディスクにバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

正常に処理されずにプロセス失敗メッセージがトリガーされるまでにメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

Object Store (オブジェクトストア)

ObjectStore

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#TcpClientSocketProperties)TCP クライアントソケットのプロパティ
項目 型 説明 デフォルト値 必須

Connection Timeout (接続タイムアウト)

Number (数値)

タイムアウトで失敗する前に、リモートサーバーへの接続中に待機する時間。設定されたリクエスターホストが複数の IP アドレスに解決される場合、ホストはそれぞれの IP アドレスへの接続を試みます。 そのため、すべての接続がタイムアウトになる場合、解決された IP アドレスの数だけグローバル接続タイムアウトの時間が長くなります。

30000

Send Tcp No Delay (遅延なく TCP を送信)

Boolean (ブール)

効率を高めるために送信データを収集して直ちにデータを送信するかどうかを示します。

true

Linger (延長)

Number (数値)

残りのデータが正しく送信されるように、ソケットが閉じるまでにかかるミリ秒単位の時間。

Keep Alive (キープアライブ)

Boolean (ブール)

ソケット接続が長時間未使用のまま開いており接続を使用できない場合にソケット接続を閉じることができるかどうかを示します。

false

Fail On Unresolved Host (ホストを解決できない場合は失敗)

Boolean (ブール)

作成時のソケットがエンドポイントに設定されているホストを解決できない場合に失敗するかどうかを示します。

true

Send Buffer Size (送信バッファサイズ)

Number (数値)

データ送信時のバイト単位のバッファのサイズ。

Receive Buffer Size (受信バッファサイズ)

Number (数値)

データ受信時のバイト単位のバッファのサイズ。

Client Timeout (クライアントタイムアウト)

Number (数値)

ブロック操作で失敗するまでにソケットが待機するミリ秒単位の時間。

Reuse Address (アドレスの再利用)

Boolean (ブール)

ポートをバインドしようとするときに、設定済みのポートを再利用する (​true​) か失敗にする (​false​) かを示します。

true

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime 属性の時間単位

### [](#defaultHeader)Default Header (デフォルトヘッダー)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

x

Value (値)

String (文字列)

x

### [](#QueryParam)Query Param (クエリパラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

x

Value (値)

String (文字列)

x

### [](#HttpResponseAttributes)HTTP Response Attributes (HTTP 応答属性) メッセージ属性の使用方法についての詳細は、​[メッセージ属性に関する](https://docs.mulesoft.com/mule-runtime/latest/about-mule-message)​ドキュメントを参照してください。
項目 型 説明 デフォルト値 必須

Status Code (状況コード)

Number (数値)

応答の HTTP 状況コード。

x

Reason Phrase (理由を示す語句)

String (文字列)

応答の HTTP の理由を示す語句。

x

Headers (ヘッダー)

Object (オブジェクト)

メッセージ内の HTTP ヘッダーのマッピング。

x

### [](#BasicAuthentication)基本認証
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#DigestAuthentication)ダイジェスト認証
項目 型 説明 デフォルト値 必須

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#NtlmAuthentication)NTLM 認証
項目 型 説明 デフォルト値 必須

Domain (ドメイン)

String (文字列)

認証するドメイン。

Workstation (ワークステーション)

String (文字列)

認証するワークステーション。

Username (ユーザー名)

String (文字列)

認証するユーザー名。

x

Password (パスワード)

String (文字列)

認証するパスワード。

x

Preemptive (プリエンプティブ)

Boolean (ブール)

認証をプリエンプティブにする必要があるかどうかを設定します。プリエンプティブ認証では、認証ヘッダーを、401 応答コードを待機してから送信するのではなく、最初の要求で送信します。

true

### [](#proxy)Proxy (プロキシ)
項目 型 説明 デフォルト値 必須

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#ntlm-proxy)NTLM Proxy (NTLM プロキシ)
項目 型 説明 デフォルト値 必須

Ntlm Domain (NTLM ドメイン)

String (文字列)

プロキシに対して認証するドメイン。

x

Host (ホスト)

String (文字列)

プロキシ要求の送信先となるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求の送信先となるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#SuccessStatusCodeValidator)Success Status Code Validator (成功状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#FailureStatusCodeValidator)Failure Status Code Validator (失敗状況コードバリデーター)
項目 型 説明 デフォルト値 必須

Values (値)

String (文字列)

考慮される状況コード。

x

### [](#origin)Origin (発生源)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

ブラウザーがリソースを読み込める発生元の URL。

x

Access Control Max Age (アクセス制御最大保持期間)

Number (数値)

プリフライト要求の結果をキャッシュする秒単位の時間。

x

Allowed Methods (許可されるメソッド)

Method (メソッド)​ の配列

発生元からリソースにアクセスするときに許可される HTTP メソッドを示します。

Allowed Headers (許可されるヘッダー)

Header (ヘッダー)​ の配列

プリフライト要求で、実際の要求中に使用する HTTP ヘッダーを示します。

Expose Headers (ヘッダーを公開)

Header (ヘッダー)​ の配列

要求で公開されるレスポンスヘッダー。

### [](#Method)Method (メソッド)
項目 型 説明 デフォルト値 必須

Method Name (メソッド名)

String (文字列)

HTTP メソッド名。

x

### [](#Header)Header (ヘッダー)
項目 型 説明 デフォルト値 必須

Header Name (ヘッダー名)

String (文字列)

HTTP ヘッダー名。

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP Listener ソースの設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースでは、HTTP サーバーをセットアップして、HTTP 要求を受信したらフローをトリガーすることができます。 ソースが受け入れるメソッド (​`GET`​、​`POST`​ やメソッドのリスト) を選択できます。HTTP 要求を受信するパスも選択できるため、さまざまなフローを使用して要求を転送することができます。 HTTP 要求を受信すると、HTTP ​**Listener**​ ソースは要求データを使用してフローをトリガーします。HTTP 本文はペイロードとして設定され、ヘッダーやクエリパラメーターなどの残りの HTTP データは属性として設定されます。 フローの実行終了後、HTTP ​**Listener**​ ソースはフロー実行が成功かどうかに基づいて異なる状況コードを返す HTTP 応答を送信します。また、ソースによって HTTP 応答がどのように生成されるかをコネクタのソース設定でカスタマイズすることができます。 ## [](#http-リスナー接続を設定する)HTTP リスナー接続を設定する HTTP ​**Listener**​ ソースを使用するには、次の設定を使用して接続を定義する必要があります。 - **Host (ホスト)**​ 要求が受信される場所を示します。ホスト名 (​`localhost`​ など)、​`www.mulesoft.com`​、IP (​`127.0.0.1`​、​`::1`​ など) を指定できます。 - **Port (ポート)**​ 要求が受信される場所を示します。 - **Protocol (プロトコル)**​ 通信のプロトコルを示します。プレーンな接続の場合は HTTP、セキュアな TLS 接続の場合は HTTPS を使用します。 HTTPS を介したセキュアな接続を有効にするには、接続に TLS コンテキストを定義し、次を指定する必要があります。 - サーバーのキーストア - トラストストア (相互認証が必要な場合) TLS 設定についての詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 さらに、すべての HTTP ​**Listener**​ ソースに適用される ​**\[Base path (ベースパス)\]**​ 項目を設定できます。 次の例は、Studio で HTTP ​**Listener**​ 接続を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 ![「Path (パス)」 項目が /test に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-listener-1.png) 1. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 2. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 ![「Host (ホスト)」 項目が 0.0.0.0、「Port (ポート)」 項目が 8081 に設定された、HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-listener-2.png) 1. **\[TLS\]**​ タブをクリックします。 2. **\[TLS configuration (TLS 設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、​**\[Path (パス)\]**​ を ​`keystore.jks`​ に、​**\[Password (パスワード)\]**​ を ​`MyP455W0rD`​ に設定します。 ![「Path (パス)」 項目が keystore.jks、「Password (パスワード)」 項目が MyP455W0rD に設定された 「Trust Store Configuration (トラストストア設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-listener-3.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`host`​、​`port`​、​`path`​、および ​`trust-store`​ の設定は次のように記述されます。 ```xml ``` ソースの ​**\[Base path (ベースパス)\]**​ 項目を設定する手順は、次のとおりです。 1. HTTP ​**Listener**​ 設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックしてグローバル要素を設定します。 2. **\[HTTP Listener config (HTTP リスナー設定)\]**​ で、​**\[Base path (ベースパス)\]**​ を ​`api/v1`​ に設定します。 ![「Base path (ベースパス)」 項目が api/v1 に設定された HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-listener-4.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`basePath`​ 設定は次のように記述されます。 ```xml ```
プロジェクトを CloudHub にデプロイする場合、マシンのすべてのインスタンスをリスンするように ​[Host (ホスト)]​ を ​0.0.0.0​ に設定する必要があります。
テスト目的でローカルにデプロイする場合は、ローカルに生成された要求のみを受信するように ​[Host (ホスト)]​ を ​localhost​ に設定します。アプリケーションが外部の脅威から攻撃を受けにくくなります。
また、高度な設定で、接続が永続的かどうかも定義できます。永続的ではない場合、タイムアウトが設定されます。 ## [](#パスの設定)パスの設定 HTTP ​**Listener**​ ソースは、フロー内のイベントトリガーとして機能するため、使用する設定と、HTTP 要求をリスンするパスを参照する必要があります。 パスは、静的 (完全一致が必要) にするか、機能のプレースホルダーを使用できます。プレースホルダーには次を使用できます。 - ワイルドカード (​`*`​) 比較対象の一部または全部と一致します。パスの末尾にワイルドカードを使用すると、未管理のリソースへの要求を取得してより適切なエラーメッセージを表示するのに役立ちます。 - パラメーター (​`{param}`​) 比較対象の一部または全部と一致するだけでなく、URI パラメーターマップ上のそれらの値も取得します。 次の例は、3 つの HTTP ​**Listener**​ ソースの異なるパスの設定を示しています。パスは ​**\[Path (パス)\]**​ 項目で定義されており、​**\[Base path (ベースパス)\]**​ 項目は ​`api/v1`​ に設定されています。 - `account/mulesoft/main-contact` パス要求 ​`http://awesome-company.com/api/v1/account/mulesoft/main-contact`​ とのみ完全一致します。 - `account/{accountId}/main-contact` 類似の構造を持つすべてのパス要求 (​`http://awesome-company.com/api/v1/account/salesforce/main-contact`​ など) と一致し、​`salesforce`​ を ​`accountId`​ の値として保存します。 - `account/{accountId}/*` `main-contact`​ とは異なるすべてのパス要求 (​`http://awesome-company.com/api/v1/account/mulesoft/users`​ など) と一致し、​`mulesoft`​ を ​`accountId`​ の値として保存します。 Mule アプリケーションに複数の HTTP ​**Listener**​ ソースがある場合、HTTP 要求は常に最も具体的なソースに転送されます。上記の例では、最初の HTTP ​**Listener**​ ソースは ​`accountId: mulesoft`​ とサフィックス ​`main-contact`​ を含む要求を受信し、2 番目のソースは異なる ​`accountId`​ 値を受信します。 ## [](#許可されるメソッドを設定する)許可されるメソッドを設定する HTTP 要求は、受信した HTTP メソッドに基づいて転送されます。デフォルトでは、HTTP ​**Listener**​ ソースはすべてのメソッドをサポートしますが、使用可能なメソッドを制限でき、カスタムメソッドを設定することもできます。 次の例は、Studio で ​**\[Allowed methods (許可されるメソッド)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. HTTP ​**Listener**​ ソース設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 4. **\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 ![「Allowed methods (許可されるメソッド)」 項目が GET に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-listener-5.png) **設定 XML**​ エディターでは、​`allowedMethods`​ 設定は次のように記述されます。 ```xml ``` Mule アプリケーションに複数の HTTP ​**Listener**​ ソースがある場合、要求はメソッドと最初に一致したソースに転送されるため、デフォルトのソースは常に最後に定義する必要があります。 次の例は、​**\[Allowed method (許可されるメソッド)\]**​ 項目が ​`GET`​、​`POST`​、​`PUT`​ に設定された、異なる HTTP ​**Listener**​ ソース設定を示しています。この異なる設定により、HTTP 要求は異なるフローに転送され、データへのユーザーアクセスを指定し、制限することができます。 ```xml ``` ## [](#応答ストリーミングモードを設定する)応答ストリーミングモードを設定する HTTP Connector は、レスポンスボディの管理時に本文のサイズが明らかではない場合、送信するデータの種類を考慮し、​_chunked_​ エンコードを使用します。これによりサイズ情報のないストリームとなります。 この動作を制御するには、​**\[Response streaming mode (応答ストリーミングモード)\]**​ 項目を次のいずれかのオプションに設定します。 - **AUTO (デフォルト)**​ 本文のサイズが定義されている場合、​`Content-Length`​ エンコードを使用します。定義されていない場合は ​`Transfer-Encoding: chunked`​ を使用します。 - **ALWAYS**​ 存在するサイズデータに関係なく ​`Transfer-Encoding: chunked`​ を使用します。 - **NEVER**​ `Content-Length`​ エンコードを使用し、必要に応じてストリームをコンシュームしてデータサイズを判定します。 次の例は、Studio で ​**\[Response streaming mode (応答ストリーミングモード)\]**​ 項目を設定する方法を示しています。この例では、アカウントの主連絡先データは常に ​`Content-Length`​ エンコードを返します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`account/{accountId}/main-contact`​ に設定します。 4. HTTP ​**Listener**​ ソース設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 5. **\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 6. **\[Response streaming mode (応答ストリーミングモード)\]**​ を ​`NEVER`​ に設定します。 ![「Allowed methods (許可されるメソッド)」 項目が GET、「Response streaming mode (応答ストリーミングモード)」 項目が NEVER に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-listener-6.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`allowedMethods`​ および ​`responseStreamingMode`​ の設定は次のように記述されます。 ```xml ``` ## [](#読み取りタイムアウトの設定)読み取りタイムアウトの設定 読み取りタイムアウトとは、HTTP ​**Listener**​ ソースが読み取りタイムアウト (ミリ秒) が経過してもデータを読み取らない場合、コネクタでタイムアウトエラーが発生することを意味します。​**\[Read timeout (読み取りタイムアウト)\]**​ 項目を使用して、クライアントが次のような HTTP 要求を送信しないようにします。 ```JSON POST /test HTTP/1.1 Host: localhost:8081 Content-Length: 10000 2 ``` 読み取りタイムアウトを指定しないと、​**Listener**​ ソースはデータをいつまでも待機するため、接続が解放されません。​**\[Read timeout (読み取りタイムアウト)\]**​ 項目はデフォルトで 30000 に設定されます。時間単位はミリ秒です。 ソースの読み取りタイムアウトを設定するには、HTTP ​**Listener**​ 設定ウィンドウで ​**\[Read timeout (読み取りタイムアウト)\]**​ 項目を目的の値に設定します。 ![「Read timeout (読み取りタイムアウト)」 項目が 30000 に設定された 「HTTP Listener config (HTTP リスナー設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-listener-7.png) **設定 XML**​ エディターでは、​`readTimeout`​ 設定は次のように記述されます。 ```xml ``` ## [](#無効な転送エンコードヘッダーの拒否の設定)無効な転送エンコードヘッダーの拒否の設定 [RFC7230](https://www.rfc-editor.org/rfc/rfc7230.html)​ と [RFC2616](https://www.rfc-editor.org/rfc/rfc2616.html)​ に基づいて有効な Transfer-Encoding ヘッダーは ​`chunked`​、​`deflate`​、​`compress`​、​`identity`​、​`gzip`​ です。これらのヘッダーでは大文字と小文字は区別されません。 無効な Transfer-Encoding ヘッダーを含む要求を拒否するには、HTTP ​**Listener**​ 設定ウィンドウで ​**\[Reject invalid transfer encoding (無効な転送エンコードを拒否)\]**​ チェックボックスをオンにします。 ![「Reject invalid transfer encoding (無効な転送エンコードを拒否)」 項目が選択されている 「HTTP Listener config (HTTP リスナー設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-listener-8.png) **設定 XML**​ エディターでは、​`rejectInvalidTransferEncoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#http-要求の受信)HTTP 要求の受信 HTTP ​**Listener**​ ソースが HTTP 要求を受信すると、HTTP 要求行からのデータにはメソッド、要求パス、クエリ、URI パラメーター、ヘッダーが属性として含まれます。本文はペイロードを設定し、​`Content-Type`​ ヘッダーは MIME タイプを設定します。これにより、他のコンポーネントがペイロードの MIME タイプを検査できます。たとえば、DataWeave では HTTP ペイロードを使用するのに入力情報を必要としません。​`HttpRequestAttributes`​ 構文を使用してヘッダー、クエリパラメーターなどの属性を参照できます。 HTTP 要求を設定するときに、​`Content-Type`​ ヘッダーを設定しないでください。Mule Runtime Engine は、メッセージペイロードからヘッダーを自動的に推定します。​`multipart/form-data`​ 形式のペイロードで ​`Content-Type`​ ヘッダーを設定すると、HTTP 要求は 400 エラー状況で失敗します。 さらに、HTTP 要求に ​`X-Correlation-ID`​ ヘッダーまたは ​`MULE_CORRELATION_ID`​ ヘッダー (Mule 3 との相互運用目的) のいずれかが含まれている場合、トレーサビリティ目的でメッセージの相関 ID が設定されます。 ### [](#http-要求の例)HTTP 要求の例 次の例は、HTTP 要求を示しています。 ```JSON POST api/v1/account/salesforce/main-contact?overwrite=true¬ify=jane.doe¬ify=admin HTTP/1.1 Host: localhost:8081 Content-Type: application/json Content-Length: 166 X-Correlation-ID: 9cf32672-4f0b-4e8b-b988-40c13aae85b4 { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` メッセージの相関 ID は ​`9cf32672-4f0b-4e8b-b988-40c13aae85b4`​ です。 ペイロードは JSON 形式です: ```JSON { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` 属性は次のとおりです。 - method: `POST` - listenerPath: `api/v1/account/{accountId}/main-contact` - requestPath: `api/v1/account/salesforce/main-contact` - relativePath: `account/salesforce/main-contact` - queryParams: エントリ ​`overwrite=true`​、​`notify=jane.doe`​、​`notify=admin`​ を含むマルチマップ - uriParams: `accountId ⇒ salesforce`​ を含むマップ - headers: エントリ ​`Host=localhost:8081`​、​`Content-Type=application/json`​、​`Content-Length=166`​、​`X-Correlation-ID=9cf32672-4f0b-4e8b-b988-40c13aae85b4` `#[payload.name ' ' payload.surname]`​ のような DataWeave 式は ​`John Doe`​ を返します。これは、DataWeave が正しく JSON データを解釈しているためです。 `#['Received a ' attributes.method ' request for account ' attributes.uriParams.accountId '.The following users are notified: ' ++ (attributes.queryParams.*notify joinBy ', ')]`​ のような式は ​`Received a POST request for account salesforce. The following users are notified: admin, jane.doe`​ を返します。 HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

メソッド

#[inboundProperties.’http.method’]

#[attributes.method]

パス

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

バージョン

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

マルチマップ​は、特定のキーに対して複数の値が許可される点を除き、マップと似ています。単一値セレクター (​.​) の使用時は最初の値を返しますが、複数値セレクター (​.*​) の使用時はすべての値の取得が許可されます。
### [](#mule-イベントへの-http-要求のマッピングの例)Mule イベントへの HTTP 要求のマッピングの例 次の図は、HTTP 要求と Mule イベントへのマッピングの例を示しています。 ![HTTP 要求と Mule イベントのマッピング](/mulesoft/current/ja-jp/http-connector/1.10/_images/request-mule-msg-map.png) [DataWeave](https://docs.mulesoft.com/dataweave/latest/)​ 言語を使用して、HTTP 要求データ属性とペイロードにアクセスします。 ### [](#http-要求のマルチパートフォームデータの例)HTTP 要求のマルチパートフォームデータの例 次の例は、HTTP ​**Listener**​ ソースによって受信された HTML フォームの HTTP 要求を示しています。さらに、この例は DataWeave 式を使用して ​`multipart/form-data`​ コンテンツを読み取る方法を示しています。 次の HTML フォームに基づいて説明します。 ```xml
How would you like to identify the logo?
Which is the logo file?
What is the main color in the logo?
``` HTTP ​**Listener**​ ソースは次の ​`multipart/form-data`​ HTTP 要求を受信します: ```text POST /api/v1/account/mulesoft/logo HTTP/1.1 Content-Type: multipart/form-data; boundary=489691234097965980223899 Host: localhost:8081 content-length: 34332 --489691234097965980223899 Content-Disposition: form-data; name="name" Corporate Logo --489691234097965980223899 Content-Disposition: form-data; name="logo"; filename="MuleSoft_logo.png" Content-Type: image/png .PNG . ... IHDR.......L......~..... pHYs...#...#.x.?v.. .IDATx....q.W.6.....~".N....t....t..#.....LD0T.CF0b..:.3......Q..@...q]U*y\c.... ....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`% .$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....^6.......|..P.....IEND.B`. --489691234097965980223899 Content-Disposition: form-data; name="color" blue --489691234097965980223899-- ``` DataWeave 式を使用すると、​`parts`​ オブジェクトを使用して名前または項目番号で HTTP 要求の各パラメーターデータにアクセスして読み取ることができます。たとえば、​`Corporate Logo`​ パラメーターデータを含む HTTP 要求の 2 番目のパートにアクセスするには、​`payload.parts.logo`​ または ​`payload.parts[1]`​ を使用できます。後者は、名前が指定されない場合に便利です。 各パート内で、そのコンテンツとヘッダーにアクセスできます。たとえば、​`payload.parts.color.content`​ は ​`blue`​ を返し、​`payload.parts.logo.headers.'Content-Type'`​ は ​`application/png`​ を返します。 パートのファイル名にアクセスすることもできます。たとえば、​`Content-Disposition`​ ヘッダーは解析されて ​`payload.parts.logo.headers.'Content-Disposition'.filename`​ のような式を許可します。この場合は ​`MuleSoft_logo.png`​ が返されます。 マルチパートコンテンツの読み取りと書き込みについての詳細は、​[「DataWeave でサポートされる形式」](https://docs.mulesoft.com/dataweave/latest/dataweave-formats)​を参照してください。 ## [](#http-応答の送信)HTTP 応答の送信 トリガーされたフローの実行が完了すると、HTTP ​**Listener**​ ソースは次のデフォルトの結果のいずれかを送信します。 - 実行成功: 200 状況コードと、本文としてメッセージペイロードを含む HTTP 応答 - 実行失敗: 500 状況コードと、本文としてフローエラーの説明を含む HTTP エラー応答 HTTP ​**Listener**​ ソース設定で、次のパラメーターを指定して HTTP 応答をカスタマイズできます。 - **Body (本文)** - **Header (ヘッダー)** - **Status code (状況コード)** - **Reason phrase (理由を示す語句)** DataWeave を使用して各パラメーターのコンテンツを生成でき、変数を使用してフローからデータを伝播できます。 ### [](#http-応答を送信する-mule-アプリケーションの作成の例)HTTP 応答を送信する Mule アプリケーションの作成の例 次の例は、Studio で HTTP ​**Listener**​ ソースの HTTP 応答を設定する方法を示しています。この例は、エンドポイントにアカウントのロゴを保存する Mule アプリケーションフローです。 - 正常に保存されると、通常の HTTP 応答は状況コード ​`201`​、理由を示す語句 ​`Created`​、本文 ​`Corporate Logo has been stored as a MuleSoft logo`​ を返します。 - 保存に失敗すると、HTTP エラー応答は ​`errorCode`​ 変数 (使用可能な場合) で定義された状況コードまたはデフォルトの ​`500`​ を返します。 - カスタムヘッダーは ​`X-Time`​ を返します。 - 本文は ​`Corporate Logo could not be stored`​ を返します。 - ロゴの保存時に ​`CONNECTIVITY`​ エラーがある場合、返される状況コードは ​`504`​、他のエラーはすべて ​`500`​ 状況コードになります。 エラー応答の理由を示す語句が定義されていないと、HTTP Connector は状況コードに基づいて理由の語句の定義を試みます。したがって、上記で説明した HTTP 応答のシナリオでは ​`Gateway Timeout`​ または ​`Internal Server Error`​ エラーが返されることがあります。 Mule アプリケーションをテストするには、2 つの列 ​`(accountId,logoName)`​ を含む ​`logo`​ というテーブルが必要です。このテーブルは Mule を使用して作成するか、別の方法で作成することができます。たとえば、次の XML コードは、Database Connector の ​**Execute script**​ 操作を使用してテーブルを作成する方法を示しています。 ```xml ``` Studio で Mule アプリケーションを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/account/{accountId}/logo`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 6. **\[OK\]**​ をクリックします。 7. HTTP ​**Listener**​ 設定画面で、​**\[Responses (応答)\]**​ タブをクリックします。 8. **\[Response (応答)\]**​ セクションで、次の値を設定します。 - **Body (本文)**​: `output text/plain --- vars.logoName ' has been stored as a ' vars.accountId ++ ' logo.'` - **Status code (状況コード)**​: `201` - **Reason phrase (理由を示す語句)**​: `Created` 1. **\[Error Response (エラー応答)\]**​ セクションで、次の値を設定します。 - **Body (本文)**​: `vars.logoName ++ ' could not be stored.'` - **Header (ヘッダー)**​: ```DataWeave output application/java --- { "X-Time" : "50s" // 4 } ``` - **Status code (状況コード)**​: `vars.errorCode default 500`​。 ![「Body (本文)」、「Header (ヘッダー)」、「Status code (状況コード)」、「Reason phrase (理由を示す語句)」 項目が表示されている HTTP Listener の応答設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-listener-9.png) 1. **\[Set Payload\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 2. **\[Name (名前)\]**​ を ​`logoName`​ に設定します。 3. **\[Value (値)\]**​ を式 ​`payload.parts.name.content`​ に設定します。 4. 別の ​**\[Set Variable\]**​ コンポーネントを最初の ​**\[Set Variable\]**​ コンポーネントの右にドラッグします。 5. **\[Name (名前)\]**​ を ​`accountId`​ に設定します。 6. **\[Value (値)\]**​ を式 ​`attributes.uriParams.accountId`​ に設定します。 7. Database の ​**\[Insert\]**​ 操作を 2 番目の ​**\[Set Variable\]**​ コンポーネントの右にドラッグします。 8. データベース接続を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 データベース接続の設定方法についての詳細は、​[「データベース接続の設定」](https://docs.mulesoft.com/db-connector/latest/database-connector-connection)​を参照してください。 9. **Insert**​ 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`INSERT INTO logo (accountId,logoName) VALUES (:accountId, :logoName`​) に設定します。 10. **\[Input parameters (入力パラメーター)\]**​ を式 ​`{'accountId': vars.accountId as String, 'logoName': vars.logoName as String}`​ に設定します。 11. **\[On Error Propagate\]**​ コンポーネントをフローの ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 12. **\[Type (種別)\]**​ を ​`DB:CONNECTIVITY`​ に設定します。 13. **\[Set Variable\]**​ コンポーネントを ​**\[On Error Propagate\]**​ コンポーネントにドラッグします。 14. **\[Name (名前)\]**​ を ​`errorCode`​ に設定します。 15. **\[Value (値)\]**​ を ​`504`​ に設定します。 16. Mule アプリケーションを保存して実行します。 17. 次の CURL コマンドを送信します。​`curl -v -F 'data=@/path/to/MuleSoft_logo.svg' -F name=mulesoftlogo [http://localhost:8081/account/muley/logo](http://localhost:8081/account/muley/logo)`​。 人間が読み取るにはコンテンツが長すぎるため、完全なペイロードは非表示にされています。 ```json * Trying 127.0.0.1... * TCP_NODELAY set * Connected to localhost (127.0.0.1) port 8081 (#0) > POST /account/muley/logo HTTP/1.1 > Host: localhost:8081 > User-Agent: curl/7.64.1 > Accept: */* > Content-Length: 5313 > Content-Type: multipart/form-data; boundary=------------------------d96e85d23101a1c3 > Expect: 100-continue > < HTTP/1.1 100 Continue * We are completely uploaded and fine < HTTP/1.1 201 Created < Content-Type: text/plain; charset=UTF-8 < Content-Length: 45 < Date: Tue, 18 Jan 2022 20:30:20 GMT < * Connection #0 to host localhost left intact mulesoftlogo has been stored as a muley logo.* Closing connection 0 ``` ### [](#http-応答を送信する-mule-アプリケーションの-xml-の例)HTTP 応答を送信する Mule アプリケーションの XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation) - [HTTP Connector トラブルシューティングガイド](https://docs.mulesoft.com/jp/http-connector/1.10/http-troubleshooting) - [DataWeave 形式](https://docs.mulesoft.com/dataweave/latest/dataweave-formats) - [TLS Configuration (TLS 設定)](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation#HttpResponseAttributes) # HTTP Listener ソースの設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースでは、HTTP サーバーをセットアップして、HTTP 要求を受信したらフローをトリガーすることができます。 ソースが受け入れるメソッド (​`GET`​、​`POST`​ やメソッドのリスト) を選択できます。HTTP 要求を受信するパスも選択できるため、さまざまなフローを使用して要求を転送することができます。 HTTP 要求を受信すると、HTTP ​**Listener**​ ソースは要求データを使用してフローをトリガーします。HTTP 本文はペイロードとして設定され、ヘッダーやクエリパラメーターなどの残りの HTTP データは属性として設定されます。 フローの実行終了後、HTTP ​**Listener**​ ソースはフロー実行が成功かどうかに基づいて異なる状況コードを返す HTTP 応答を送信します。また、ソースによって HTTP 応答がどのように生成されるかをコネクタのソース設定でカスタマイズすることができます。 ## [](#http-リスナー接続を設定する)HTTP リスナー接続を設定する HTTP ​**Listener**​ ソースを使用するには、次の設定を使用して接続を定義する必要があります。 - **Host (ホスト)**​ 要求が受信される場所を示します。ホスト名 (​`localhost`​ など)、​`www.mulesoft.com`​、IP (​`127.0.0.1`​、​`::1`​ など) を指定できます。 - **Port (ポート)**​ 要求が受信される場所を示します。 - **Protocol (プロトコル)**​ 通信のプロトコルを示します。プレーンな接続の場合は HTTP、セキュアな TLS 接続の場合は HTTPS を使用します。 HTTPS を介したセキュアな接続を有効にするには、接続に TLS コンテキストを定義し、次を指定する必要があります。 - サーバーのキーストア - トラストストア (相互認証が必要な場合) TLS 設定についての詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 さらに、すべての HTTP ​**Listener**​ ソースに適用される ​**\[Base path (ベースパス)\]**​ 項目を設定できます。 次の例は、Studio で HTTP ​**Listener**​ 接続を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 ![「Path (パス)」 項目が /test に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-listener-1.png) 1. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 2. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 ![「Host (ホスト)」 項目が 0.0.0.0、「Port (ポート)」 項目が 8081 に設定された、HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-listener-2.png) 1. **\[TLS\]**​ タブをクリックします。 2. **\[TLS configuration (TLS 設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、​**\[Path (パス)\]**​ を ​`keystore.jks`​ に、​**\[Password (パスワード)\]**​ を ​`MyP455W0rD`​ に設定します。 ![「Path (パス)」 項目が keystore.jks、「Password (パスワード)」 項目が MyP455W0rD に設定された 「Trust Store Configuration (トラストストア設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-listener-3.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`host`​、​`port`​、​`path`​、および ​`trust-store`​ の設定は次のように記述されます。 ```xml ``` ソースの ​**\[Base path (ベースパス)\]**​ 項目を設定する手順は、次のとおりです。 1. HTTP ​**Listener**​ 設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックしてグローバル要素を設定します。 2. **\[HTTP Listener config (HTTP リスナー設定)\]**​ で、​**\[Base path (ベースパス)\]**​ を ​`api/v1`​ に設定します。 ![「Base path (ベースパス)」 項目が api/v1 に設定された HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-listener-4.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`basePath`​ 設定は次のように記述されます。 ```xml ```
プロジェクトを CloudHub にデプロイする場合、マシンのすべてのインスタンスをリスンするように ​[Host (ホスト)]​ を ​0.0.0.0​ に設定する必要があります。
テスト目的でローカルにデプロイする場合は、ローカルに生成された要求のみを受信するように ​[Host (ホスト)]​ を ​localhost​ に設定します。アプリケーションが外部の脅威から攻撃を受けにくくなります。
また、高度な設定で、接続が永続的かどうかも定義できます。永続的ではない場合、タイムアウトが設定されます。 ## [](#パスの設定)パスの設定 HTTP ​**Listener**​ ソースは、フロー内のイベントトリガーとして機能するため、使用する設定と、HTTP 要求をリスンするパスを参照する必要があります。 パスは、静的 (完全一致が必要) にするか、機能のプレースホルダーを使用できます。プレースホルダーには次を使用できます。 - ワイルドカード (​`*`​) 比較対象の一部または全部と一致します。パスの末尾にワイルドカードを使用すると、未管理のリソースへの要求を取得してより適切なエラーメッセージを表示するのに役立ちます。 - パラメーター (​`{param}`​) 比較対象の一部または全部と一致するだけでなく、URI パラメーターマップ上のそれらの値も取得します。 次の例は、3 つの HTTP ​**Listener**​ ソースの異なるパスの設定を示しています。パスは ​**\[Path (パス)\]**​ 項目で定義されており、​**\[Base path (ベースパス)\]**​ 項目は ​`api/v1`​ に設定されています。 - `account/mulesoft/main-contact` パス要求 ​`http://awesome-company.com/api/v1/account/mulesoft/main-contact`​ とのみ完全一致します。 - `account/{accountId}/main-contact` 類似の構造を持つすべてのパス要求 (​`http://awesome-company.com/api/v1/account/salesforce/main-contact`​ など) と一致し、​`salesforce`​ を ​`accountId`​ の値として保存します。 - `account/{accountId}/*` `main-contact`​ とは異なるすべてのパス要求 (​`http://awesome-company.com/api/v1/account/mulesoft/users`​ など) と一致し、​`mulesoft`​ を ​`accountId`​ の値として保存します。 Mule アプリケーションに複数の HTTP ​**Listener**​ ソースがある場合、HTTP 要求は常に最も具体的なソースに転送されます。上記の例では、最初の HTTP ​**Listener**​ ソースは ​`accountId: mulesoft`​ とサフィックス ​`main-contact`​ を含む要求を受信し、2 番目のソースは異なる ​`accountId`​ 値を受信します。 ## [](#許可されるメソッドを設定する)許可されるメソッドを設定する HTTP 要求は、受信した HTTP メソッドに基づいて転送されます。デフォルトでは、HTTP ​**Listener**​ ソースはすべてのメソッドをサポートしますが、使用可能なメソッドを制限でき、カスタムメソッドを設定することもできます。 次の例は、Studio で ​**\[Allowed methods (許可されるメソッド)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. HTTP ​**Listener**​ ソース設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 4. **\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 ![「Allowed methods (許可されるメソッド)」 項目が GET に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-listener-5.png) **設定 XML**​ エディターでは、​`allowedMethods`​ 設定は次のように記述されます。 ```xml ``` Mule アプリケーションに複数の HTTP ​**Listener**​ ソースがある場合、要求はメソッドと最初に一致したソースに転送されるため、デフォルトのソースは常に最後に定義する必要があります。 次の例は、​**\[Allowed method (許可されるメソッド)\]**​ 項目が ​`GET`​、​`POST`​、​`PUT`​ に設定された、異なる HTTP ​**Listener**​ ソース設定を示しています。この異なる設定により、HTTP 要求は異なるフローに転送され、データへのユーザーアクセスを指定し、制限することができます。 ```xml ``` ## [](#応答ストリーミングモードを設定する)応答ストリーミングモードを設定する HTTP Connector は、レスポンスボディの管理時に本文のサイズが明らかではない場合、送信するデータの種類を考慮し、​_chunked_​ エンコードを使用します。これによりサイズ情報のないストリームとなります。 この動作を制御するには、​**\[Response streaming mode (応答ストリーミングモード)\]**​ 項目を次のいずれかのオプションに設定します。 - **AUTO (デフォルト)**​ 本文のサイズが定義されている場合、​`Content-Length`​ エンコードを使用します。定義されていない場合は ​`Transfer-Encoding: chunked`​ を使用します。 - **ALWAYS (常時)**​ 存在するサイズデータに関係なく ​`Transfer-Encoding: chunked`​ を使用します。 - **NEVER (なし)**​ `Content-Length`​ エンコードを使用し、必要に応じてストリームをコンシュームしてデータサイズを判定します。 次の例は、Studio で ​**\[Response streaming mode (応答ストリーミングモード)\]**​ 項目を設定する方法を示しています。この例では、アカウントの主連絡先データは常に ​`Content-Length`​ エンコードを返します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`account/{accountId}/main-contact`​ に設定します。 4. HTTP ​**Listener**​ ソース設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 5. **\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 6. **\[Response streaming mode (応答ストリーミングモード)\]**​ を ​`NEVER`​ に設定します。 ![「Allowed methods (許可されるメソッド)」 項目が GET、「Response streaming mode (応答ストリーミングモード)」 項目が NEVER に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-listener-6.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`allowedMethods`​ および ​`responseStreamingMode`​ の設定は次のように記述されます。 ```xml ``` ## [](#読み取りタイムアウトの設定)読み取りタイムアウトの設定 読み取りタイムアウトとは、HTTP ​**Listener**​ ソースが読み取りタイムアウト (ミリ秒) が経過してもデータを読み取らない場合、コネクタでタイムアウトエラーが発生することを意味します。​**\[Read timeout (読み取りタイムアウト)\]**​ 項目を使用して、クライアントが次のような HTTP 要求を送信しないようにします。 ```JSON POST /test HTTP/1.1 Host: localhost:8081 Content-Length: 10000 2 ``` 読み取りタイムアウトを指定しないと、​**Listener**​ ソースはデータをいつまでも待機するため、接続が解放されません。​**\[Read timeout (読み取りタイムアウト)\]**​ 項目はデフォルトで 30000 に設定されます。時間単位はミリ秒です。 ソースの読み取りタイムアウトを設定するには、HTTP ​**Listener**​ 設定ウィンドウで ​**\[Read timeout (読み取りタイムアウト)\]**​ 項目を目的の値に設定します。 ![「Read timeout (読み取りタイムアウト)」 項目が 30000 に設定された 「HTTP Listener config (HTTP リスナー設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-listener-7.png) **設定 XML**​ エディターでは、​`readTimeout`​ 設定は次のように記述されます。 ```xml ``` ## [](#無効な転送エンコードヘッダーの拒否の設定)無効な転送エンコードヘッダーの拒否の設定 [RFC7230](https://www.rfc-editor.org/rfc/rfc7230.html)​ と [RFC2616](https://www.rfc-editor.org/rfc/rfc2616.html)​ に基づいて有効な Transfer-Encoding ヘッダーは ​`chunked`​、​`deflate`​、​`compress`​、​`identity`​、​`gzip`​ です。これらのヘッダーでは大文字と小文字は区別されません。 無効な Transfer-Encoding ヘッダーを含む要求を拒否するには、HTTP ​**Listener**​ 設定ウィンドウで ​**\[Reject invalid transfer encoding (無効な転送エンコードを拒否)\]**​ チェックボックスをオンにします。 ![「Reject invalid transfer encoding (無効な転送エンコードを拒否)」 項目が選択されている 「HTTP Listener config (HTTP リスナー設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-listener-8.png) **設定 XML**​ エディターでは、​`rejectInvalidTransferEncoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#http-要求の受信)HTTP 要求の受信 HTTP ​**Listener**​ ソースが HTTP 要求を受信すると、HTTP 要求行からのデータにはメソッド、要求パス、クエリ、URI パラメーター、ヘッダーが属性として含まれます。本文はペイロードを設定し、​`Content-Type`​ ヘッダーは MIME タイプを設定します。これにより、他のコンポーネントがペイロードの MIME タイプを検査できます。たとえば、DataWeave では HTTP ペイロードを使用するのに入力情報を必要としません。​`HttpRequestAttributes`​ 構文を使用してヘッダー、クエリパラメーターなどの属性を参照できます。 HTTP 要求を設定するときに、​`Content-Type`​ ヘッダーを設定しないでください。Mule Runtime Engine は、メッセージペイロードからヘッダーを自動的に推定します。​`multipart/form-data`​ 形式のペイロードで ​`Content-Type`​ ヘッダーを設定すると、HTTP 要求は 400 エラー状況で失敗します。 さらに、HTTP 要求に ​`X-Correlation-ID`​ ヘッダーまたは ​`MULE_CORRELATION_ID`​ ヘッダー (Mule 3 との相互運用目的) のいずれかが含まれている場合、トレーサビリティ目的でメッセージの相関 ID が設定されます。 ### [](#http-要求の例)HTTP 要求の例 次の例は、HTTP 要求を示しています。 ```JSON POST api/v1/account/salesforce/main-contact?overwrite=true¬ify=jane.doe¬ify=admin HTTP/1.1 Host: localhost:8081 Content-Type: application/json Content-Length: 166 X-Correlation-ID: 9cf32672-4f0b-4e8b-b988-40c13aae85b4 { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` メッセージの相関 ID は ​`9cf32672-4f0b-4e8b-b988-40c13aae85b4`​ です。 ペイロードは JSON 形式です: ```JSON { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` 属性は次のとおりです。 - method: `POST` - listenerPath: `api/v1/account/{accountId}/main-contact` - requestPath: `api/v1/account/salesforce/main-contact` - relativePath: `account/salesforce/main-contact` - queryParams: エントリ ​`overwrite=true`​、​`notify=jane.doe`​、​`notify=admin`​ を含むマルチマップ - uriParams: `accountId ⇒ salesforce`​ を含むマップ - headers: エントリ ​`Host=localhost:8081`​、​`Content-Type=application/json`​、​`Content-Length=166`​、​`X-Correlation-ID=9cf32672-4f0b-4e8b-b988-40c13aae85b4` `#[payload.name ' ' payload.surname]`​ のような DataWeave 式は ​`John Doe`​ を返します。これは、DataWeave が正しく JSON データを解釈しているためです。 `#['Received a ' attributes.method ' request for account ' attributes.uriParams.accountId '.The following users are notified: ' ++ (attributes.queryParams.*notify joinBy ', ')]`​ のような式は ​`Received a POST request for account salesforce. The following users are notified: admin, jane.doe`​ を返します。 HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

Method (メソッド)

#[inboundProperties.’http.method’]

#[attributes.method]

Path (パス)

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

Version (バージョン)

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

マルチマップ​は、特定のキーに対して複数の値が許可される点を除き、マップと似ています。単一値セレクター (​.​) の使用時は最初の値を返しますが、複数値セレクター (​.*​) の使用時はすべての値の取得が許可されます。
### [](#mule-イベントへの-http-要求のマッピングの例)Mule イベントへの HTTP 要求のマッピングの例 次の図は、HTTP 要求と Mule イベントへのマッピングの例を示しています。 ![HTTP 要求と Mule イベントのマッピング](/mulesoft/current/ja-jp/http-connector/1.6/_images/request-mule-msg-map.png) [DataWeave](https://docs.mulesoft.com/dataweave/latest/)​ 言語を使用して、HTTP 要求データ属性とペイロードにアクセスします。 ### [](#http-要求のマルチパートフォームデータの例)HTTP 要求のマルチパートフォームデータの例 次の例は、HTTP ​**Listener**​ ソースによって受信された HTML フォームの HTTP 要求を示しています。さらに、この例は DataWeave 式を使用して ​`multipart/form-data`​ コンテンツを読み取る方法を示しています。 次の HTML フォームに基づいて説明します。 ```xml
How would you like to identify the logo?
Which is the logo file?
What is the main color in the logo?
``` HTTP ​**Listener**​ ソースは次の ​`multipart/form-data`​ HTTP 要求を受信します: ```text POST /api/v1/account/mulesoft/logo HTTP/1.1 Content-Type: multipart/form-data; boundary=489691234097965980223899 Host: localhost:8081 content-length: 34332 --489691234097965980223899 Content-Disposition: form-data; name="name" Corporate Logo --489691234097965980223899 Content-Disposition: form-data; name="logo"; filename="MuleSoft_logo.png" Content-Type: image/png .PNG . ... IHDR.......L......~..... pHYs...#...#.x.?v.. .IDATx....q.W.6.....~".N....t....t..#.....LD0T.CF0b..:.3......Q..@...q]U*y\c.... ....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`% .$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....^6.......|..P.....IEND.B`. --489691234097965980223899 Content-Disposition: form-data; name="color" blue --489691234097965980223899-- ``` DataWeave 式を使用すると、​`parts`​ オブジェクトを使用して名前または項目番号で HTTP 要求の各パラメーターデータにアクセスして読み取ることができます。たとえば、​`Corporate Logo`​ パラメーターデータを含む HTTP 要求の 2 番目のパートにアクセスするには、​`payload.parts.logo`​ または ​`payload.parts[1]`​ を使用できます。後者は、名前が指定されない場合に便利です。 各パート内で、そのコンテンツとヘッダーにアクセスできます。たとえば、​`payload.parts.color.content`​ は ​`blue`​ を返し、​`payload.parts.logo.headers.'Content-Type'`​ は ​`application/png`​ を返します。 パートのファイル名にアクセスすることもできます。たとえば、​`Content-Disposition`​ ヘッダーは解析されて ​`payload.parts.logo.headers.'Content-Disposition'.filename`​ のような式を許可します。この場合は ​`MuleSoft_logo.png`​ が返されます。 マルチパートコンテンツの読み取りと書き込みについての詳細は、​[「DataWeave でサポートされる形式」](https://docs.mulesoft.com/dataweave/latest/dataweave-formats)​を参照してください。 ## [](#http-応答の送信)HTTP 応答の送信 トリガーされたフローの実行が完了すると、HTTP ​**Listener**​ ソースは次のデフォルトの結果のいずれかを送信します。 - 実行成功: 200 状況コードと、本文としてメッセージペイロードを含む HTTP 応答 - 実行失敗: 500 状況コードと、本文としてフローエラーの説明を含む HTTP エラー応答 HTTP ​**Listener**​ ソース設定で、次のパラメーターを指定して HTTP 応答をカスタマイズできます。 - **Body (本文)** - **Header (ヘッダー)** - **Status code (状況コード)** - **Reason phrase (理由を示す語句)** DataWeave を使用して各パラメーターのコンテンツを生成でき、変数を使用してフローからデータを伝播できます。 ### [](#http-応答を送信する-mule-アプリケーションの作成の例)HTTP 応答を送信する Mule アプリケーションの作成の例 次の例は、Studio で HTTP ​**Listener**​ ソースの HTTP 応答を設定する方法を示しています。この例は、エンドポイントにアカウントのロゴを保存する Mule アプリケーションフローです。 - 正常に保存されると、通常の HTTP 応答は状況コード ​`201`​、理由を示す語句 ​`Created`​、本文 ​`Corporate Logo has been stored as a MuleSoft logo`​ を返します。 - 保存に失敗すると、HTTP エラー応答は ​`errorCode`​ 変数 (使用可能な場合) で定義された状況コードまたはデフォルトの ​`500`​ を返します。 - カスタムヘッダーは ​`X-Time`​ を返します。 - 本文は ​`Corporate Logo could not be stored`​ を返します。 - ロゴの保存時に ​`CONNECTIVITY`​ エラーがある場合、返される状況コードは ​`504`​、他のエラーはすべて ​`500`​ 状況コードになります。 エラー応答の理由を示す語句が定義されていないと、HTTP Connector は状況コードに基づいて理由の語句の定義を試みます。したがって、上記で説明した HTTP 応答のシナリオでは ​`Gateway Timeout`​ または ​`Internal Server Error`​ エラーが返されることがあります。 Mule アプリケーションをテストするには、2 つの列 ​`(accountId,logoName)`​ を含む ​`logo`​ というテーブルが必要です。このテーブルは Mule を使用して作成するか、別の方法で作成することができます。たとえば、次の XML コードは、Database Connector の ​**Execute script**​ 操作を使用してテーブルを作成する方法を示しています。 ```xml ``` Studio で Mule アプリケーションを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/account/{accountId}/logo`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 6. **\[OK\]**​ をクリックします。 7. HTTP ​**Listener**​ 設定画面で、​**\[Responses (応答)\]**​ タブをクリックします。 8. **\[Response (応答)\]**​ セクションで、次の値を設定します。 - **Body (本文)**​: `output text/plain --- vars.logoName ' has been stored as a ' vars.accountId ++ ' logo.'` - **Status code (状況コード)**​: `201` - **Reason phrase (理由を示す語句)**​: `Created` 1. **\[Error Response (エラー応答)\]**​ セクションで、次の値を設定します。 - **Body (本文)**​: `vars.logoName ++ ' could not be stored.'` - **Header (ヘッダー)**​: ```DataWeave output application/java --- { "X-Time" : "50s" // 4 } ``` - **Status code (状況コード)**​: `vars.errorCode default 500` ![「Body (本文)」、「Header (ヘッダー)」、「Status code (状況コード)」、「Reason phrase (理由を示す語句)」 項目が表示されている HTTP Listener の応答設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-listener-9.png) 1. **\[Set Payload\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 2. **\[Name (名前)\]**​ を ​`logoName`​ に設定します。 3. **\[Value (値)\]**​ を式 ​`payload.parts.name.content`​ に設定します。 4. 別の ​**\[Set Variable\]**​ コンポーネントを最初の ​**\[Set Variable\]**​ コンポーネントの右にドラッグします。 5. **\[Name (名前)\]**​ を ​`accountId`​ に設定します。 6. **\[Value (値)\]**​ を式 ​`attributes.uriParams.accountId`​ に設定します。 7. Database の ​**\[Insert\]**​ 操作を 2 番目の ​**\[Set Variable\]**​ コンポーネントの右にドラッグします。 8. データベース接続を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 データベース接続の設定方法についての詳細は、​[「データベース接続の設定」](https://docs.mulesoft.com/db-connector/latest/database-connector-connection)​を参照してください。 9. **Insert**​ 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`INSERT INTO logo (accountId,logoName) VALUES (:accountId, :logoName`​) に設定します。 10. **\[Input parameters (入力パラメーター)\]**​ を式 ​`{'accountId': vars.accountId as String, 'logoName': vars.logoName as String}`​ に設定します。 11. **\[On Error Propagate\]**​ コンポーネントをフローの ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 12. **\[Type (種別)\]**​ を ​`DB:CONNECTIVITY`​ に設定します。 13. **\[Set Variable\]**​ コンポーネントを ​**\[On Error Propagate\]**​ コンポーネントにドラッグします。 14. **\[Name (名前)\]**​ を ​`errorCode`​ に設定します。 15. **\[Value (値)\]**​ を ​`504`​ に設定します。 16. Mule アプリケーションを保存して実行します。 17. 次の CURL コマンドを送信します。​`curl -v -F 'data=@/path/to/MuleSoft_logo.svg' -F name=mulesoftlogo [http://localhost:8081/account/muley/logo](http://localhost:8081/account/muley/logo)` 人間が読み取るにはコンテンツが長すぎるため、完全なペイロードは非表示にされています。 ```json * Trying 127.0.0.1... * TCP_NODELAY set * Connected to localhost (127.0.0.1) port 8081 (#0) > POST /account/muley/logo HTTP/1.1 > Host: localhost:8081 > User-Agent: curl/7.64.1 > Accept: */* > Content-Length: 5313 > Content-Type: multipart/form-data; boundary=------------------------d96e85d23101a1c3 > Expect: 100-continue > < HTTP/1.1 100 Continue * We are completely uploaded and fine < HTTP/1.1 201 Created < Content-Type: text/plain; charset=UTF-8 < Content-Length: 45 < Date: Tue, 18 Jan 2022 20:30:20 GMT < * Connection #0 to host localhost left intact mulesoftlogo has been stored as a muley logo.* Closing connection 0 ``` ### [](#http-応答を送信する-mule-アプリケーションの-xml-の例)HTTP 応答を送信する Mule アプリケーションの XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-documentation) - [HTTP Connector トラブルシューティングガイド](https://docs.mulesoft.com/jp/http-connector/1.6/http-troubleshooting) - [DataWeave 形式](https://docs.mulesoft.com/dataweave/latest/dataweave-formats) - [TLS Configuration (TLS 設定)](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-documentation#HttpResponseAttributes) # HTTP Listener ソースの設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースでは、HTTP サーバーをセットアップして、HTTP 要求を受信したらフローをトリガーすることができます。 ソースが受け入れるメソッド (​`GET`​、​`POST`​ やメソッドのリスト) を選択できます。HTTP 要求を受信するパスも選択できるため、さまざまなフローを使用して要求を転送することができます。 HTTP 要求を受信すると、HTTP ​**Listener**​ ソースは要求データを使用してフローをトリガーします。HTTP 本文はペイロードとして設定され、ヘッダーやクエリパラメーターなどの残りの HTTP データは属性として設定されます。 フローの実行終了後、HTTP ​**Listener**​ ソースはフロー実行が成功かどうかに基づいて異なる状況コードを返す HTTP 応答を送信します。また、ソースによって HTTP 応答がどのように生成されるかをコネクタのソース設定でカスタマイズすることができます。 ## [](#http-リスナー接続を設定する)HTTP リスナー接続を設定する HTTP ​**Listener**​ ソースを使用するには、次の設定を使用して接続を定義する必要があります。 - **Host (ホスト)**​ 要求が受信される場所を示します。ホスト名 (​`localhost`​ など)、​`www.mulesoft.com`​、IP (​`127.0.0.1`​、​`::1`​ など) を指定できます。 - **Port (ポート)**​ 要求が受信される場所を示します。 - **Protocol (プロトコル)**​ 通信のプロトコルを示します。プレーンな接続の場合は HTTP、セキュアな TLS 接続の場合は HTTPS を使用します。 HTTPS を介したセキュアな接続を有効にするには、接続に TLS コンテキストを定義し、次を指定する必要があります。 - サーバーのキーストア - トラストストア (相互認証が必要な場合) TLS 設定についての詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 さらに、すべての HTTP ​**Listener**​ ソースに適用される ​**\[Base path (ベースパス)\]**​ 項目を設定できます。 次の例は、Studio で HTTP ​**Listener**​ 接続を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 ![「Path (パス)」 項目が /test に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-listener-1.png) 1. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 2. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 ![「Host (ホスト)」 項目が 0.0.0.0、「Port (ポート)」 項目が 8081 に設定された、HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-listener-2.png) 1. **\[TLS\]**​ タブをクリックします。 2. **\[TLS configuration (TLS 設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、​**\[Path (パス)\]**​ を ​`keystore.jks`​ に、​**\[Password (パスワード)\]**​ を ​`MyP455W0rD`​ に設定します。 ![「Path (パス)」 項目が keystore.jks、「Password (パスワード)」 項目が MyP455W0rD に設定された 「Trust Store Configuration (トラストストア設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-listener-3.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`host`​、​`port`​、​`path`​、および ​`trust-store`​ の設定は次のように記述されます。 ```xml ``` ソースの ​**\[Base path (ベースパス)\]**​ 項目を設定する手順は、次のとおりです。 1. HTTP ​**Listener**​ 設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックしてグローバル要素を設定します。 2. **\[HTTP Listener config (HTTP リスナー設定)\]**​ で、​**\[Base path (ベースパス)\]**​ を ​`api/v1`​ に設定します。 ![「Base path (ベースパス)」 項目が api/v1 に設定された HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-listener-4.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`basePath`​ 設定は次のように記述されます。 ```xml ```
プロジェクトを CloudHub にデプロイする場合、マシンのすべてのインスタンスをリスンするように ​[Host (ホスト)]​ を ​0.0.0.0​ に設定する必要があります。
テスト目的でローカルにデプロイする場合は、ローカルに生成された要求のみを受信するように ​[Host (ホスト)]​ を ​localhost​ に設定します。アプリケーションが外部の脅威から攻撃を受けにくくなります。
また、高度な設定で、接続が永続的かどうかも定義できます。永続的ではない場合、タイムアウトが設定されます。 ## [](#パスの設定)パスの設定 HTTP ​**Listener**​ ソースは、フロー内のイベントトリガーとして機能するため、使用する設定と、HTTP 要求をリスンするパスを参照する必要があります。 パスは、静的 (完全一致が必要) にするか、機能のプレースホルダーを使用できます。プレースホルダーには次を使用できます。 - ワイルドカード (​`*`​) 比較対象の一部または全部と一致します。パスの末尾にワイルドカードを使用すると、未管理のリソースへの要求を取得してより適切なエラーメッセージを表示するのに役立ちます。 - パラメーター (​`{param}`​) 比較対象の一部または全部と一致するだけでなく、URI パラメーターマップ上のそれらの値も取得します。 次の例は、3 つの HTTP ​**Listener**​ ソースの異なるパスの設定を示しています。パスは ​**\[Path (パス)\]**​ 項目で定義されており、​**\[Base path (ベースパス)\]**​ 項目は ​`api/v1`​ に設定されています。 - `account/mulesoft/main-contact` パス要求 ​`http://awesome-company.com/api/v1/account/mulesoft/main-contact`​ とのみ完全一致します。 - `account/{accountId}/main-contact` 類似の構造を持つすべてのパス要求 (​`http://awesome-company.com/api/v1/account/salesforce/main-contact`​ など) と一致し、​`salesforce`​ を ​`accountId`​ の値として保存します。 - `account/{accountId}/*` `main-contact`​ とは異なるすべてのパス要求 (​`http://awesome-company.com/api/v1/account/mulesoft/users`​ など) と一致し、​`mulesoft`​ を ​`accountId`​ の値として保存します。 Mule アプリケーションに複数の HTTP ​**Listener**​ ソースがある場合、HTTP 要求は常に最も具体的なソースに転送されます。上記の例では、最初の HTTP ​**Listener**​ ソースは ​`accountId: mulesoft`​ とサフィックス ​`main-contact`​ を含む要求を受信し、2 番目のソースは異なる ​`accountId`​ 値を受信します。 ## [](#許可されるメソッドを設定する)許可されるメソッドを設定する HTTP 要求は、受信した HTTP メソッドに基づいて転送されます。デフォルトでは、HTTP ​**Listener**​ ソースはすべてのメソッドをサポートしますが、使用可能なメソッドを制限でき、カスタムメソッドを設定することもできます。 次の例は、Studio で ​**\[Allowed methods (許可されるメソッド)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. HTTP ​**Listener**​ ソース設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 4. **\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 ![「Allowed methods (許可されるメソッド)」 項目が GET に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-listener-5.png) **設定 XML**​ エディターでは、​`allowedMethods`​ 設定は次のように記述されます。 ```xml ``` Mule アプリケーションに複数の HTTP ​**Listener**​ ソースがある場合、要求はメソッドと最初に一致したソースに転送されるため、デフォルトのソースは常に最後に定義する必要があります。 次の例は、​**\[Allowed method (許可されるメソッド)\]**​ 項目が ​`GET`​、​`POST`​、​`PUT`​ に設定された、異なる HTTP ​**Listener**​ ソース設定を示しています。この異なる設定により、HTTP 要求は異なるフローに転送され、データへのユーザーアクセスを指定し、制限することができます。 ```xml ``` ## [](#応答ストリーミングモードを設定する)応答ストリーミングモードを設定する HTTP Connector は、レスポンスボディの管理時に本文のサイズが明らかではない場合、送信するデータの種類を考慮し、​_chunked_​ エンコードを使用します。これによりサイズ情報のないストリームとなります。 この動作を制御するには、​**\[Response streaming mode (応答ストリーミングモード)\]**​ 項目を次のいずれかのオプションに設定します。 - **AUTO (デフォルト)**​ 本文のサイズが定義されている場合、​`Content-Length`​ エンコードを使用します。定義されていない場合は ​`Transfer-Encoding: chunked`​ を使用します。 - **ALWAYS**​ 存在するサイズデータに関係なく ​`Transfer-Encoding: chunked`​ を使用します。 - **NEVER**​ `Content-Length`​ エンコードを使用し、必要に応じてストリームをコンシュームしてデータサイズを判定します。 次の例は、Studio で ​**\[Response streaming mode (応答ストリーミングモード)\]**​ 項目を設定する方法を示しています。この例では、アカウントの主連絡先データは常に ​`Content-Length`​ エンコードを返します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`account/{accountId}/main-contact`​ に設定します。 4. HTTP ​**Listener**​ ソース設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 5. **\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 6. **\[Response streaming mode (応答ストリーミングモード)\]**​ を ​`NEVER`​ に設定します。 ![「Allowed methods (許可されるメソッド)」 項目が GET、「Response streaming mode (応答ストリーミングモード)」 項目が NEVER に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-listener-6.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`allowedMethods`​ および ​`responseStreamingMode`​ の設定は次のように記述されます。 ```xml ``` ## [](#読み取りタイムアウトの設定)読み取りタイムアウトの設定 読み取りタイムアウトとは、HTTP ​**Listener**​ ソースが読み取りタイムアウト (ミリ秒) が経過してもデータを読み取らない場合、コネクタでタイムアウトエラーが発生することを意味します。​**\[Read timeout (読み取りタイムアウト)\]**​ 項目を使用して、クライアントが次のような HTTP 要求を送信しないようにします。 ```JSON POST /test HTTP/1.1 Host: localhost:8081 Content-Length: 10000 2 ``` 読み取りタイムアウトを指定しないと、​**Listener**​ ソースはデータをいつまでも待機するため、接続が解放されません。​**\[Read timeout (読み取りタイムアウト)\]**​ 項目はデフォルトで 30000 に設定されます。時間単位はミリ秒です。 ソースの読み取りタイムアウトを設定するには、HTTP ​**Listener**​ 設定ウィンドウで ​**\[Read timeout (読み取りタイムアウト)\]**​ 項目を目的の値に設定します。 ![「Read timeout (読み取りタイムアウト)」 項目が 30000 に設定された 「HTTP Listener config (HTTP リスナー設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-listener-7.png) **設定 XML**​ エディターでは、​`readTimeout`​ 設定は次のように記述されます。 ```xml ``` ## [](#無効な転送エンコードヘッダーの拒否の設定)無効な転送エンコードヘッダーの拒否の設定 [RFC7230](https://www.rfc-editor.org/rfc/rfc7230.html)​ と [RFC2616](https://www.rfc-editor.org/rfc/rfc2616.html)​ に基づいて有効な Transfer-Encoding ヘッダーは ​`chunked`​、​`deflate`​、​`compress`​、​`identity`​、​`gzip`​ です。これらのヘッダーでは大文字と小文字は区別されません。 無効な Transfer-Encoding ヘッダーを含む要求を拒否するには、HTTP ​**Listener**​ 設定ウィンドウで ​**\[Reject invalid transfer encoding (無効な転送エンコードを拒否)\]**​ チェックボックスをオンにします。 ![「Reject invalid transfer encoding (無効な転送エンコードを拒否)」 項目が選択されている 「HTTP Listener config (HTTP リスナー設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-listener-8.png) **設定 XML**​ エディターでは、​`rejectInvalidTransferEncoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#http-要求の受信)HTTP 要求の受信 HTTP ​**Listener**​ ソースが HTTP 要求を受信すると、HTTP 要求行からのデータにはメソッド、要求パス、クエリ、URI パラメーター、ヘッダーが属性として含まれます。本文はペイロードを設定し、​`Content-Type`​ ヘッダーは MIME タイプを設定します。これにより、他のコンポーネントがペイロードの MIME タイプを検査できます。たとえば、DataWeave では HTTP ペイロードを使用するのに入力情報を必要としません。​`HttpRequestAttributes`​ 構文を使用してヘッダー、クエリパラメーターなどの属性を参照できます。 HTTP 要求を設定するときに、​`Content-Type`​ ヘッダーを設定しないでください。Mule Runtime Engine は、メッセージペイロードからヘッダーを自動的に推定します。​`multipart/form-data`​ 形式のペイロードで ​`Content-Type`​ ヘッダーを設定すると、HTTP 要求は 400 エラー状況で失敗します。 さらに、HTTP 要求に ​`X-Correlation-ID`​ ヘッダーまたは ​`MULE_CORRELATION_ID`​ ヘッダー (Mule 3 との相互運用目的) のいずれかが含まれている場合、トレーサビリティ目的でメッセージの相関 ID が設定されます。 ### [](#http-要求の例)HTTP 要求の例 次の例は、HTTP 要求を示しています。 ```JSON POST api/v1/account/salesforce/main-contact?overwrite=true¬ify=jane.doe¬ify=admin HTTP/1.1 Host: localhost:8081 Content-Type: application/json Content-Length: 166 X-Correlation-ID: 9cf32672-4f0b-4e8b-b988-40c13aae85b4 { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` メッセージの相関 ID は ​`9cf32672-4f0b-4e8b-b988-40c13aae85b4`​ です。 ペイロードは JSON 形式です: ```JSON { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` 属性は次のとおりです。 - method: `POST` - listenerPath: `api/v1/account/{accountId}/main-contact` - requestPath: `api/v1/account/salesforce/main-contact` - relativePath: `account/salesforce/main-contact` - queryParams: エントリ ​`overwrite=true`​、​`notify=jane.doe`​、​`notify=admin`​ を含むマルチマップ - uriParams: `accountId ⇒ salesforce`​ を含むマップ - headers: エントリ​`Host=localhost:8081`​、​`Content-Type=application/json`​、​`Content-Length=166`​、​`X-Correlation-ID=9cf32672-4f0b-4e8b-b988-40c13aae85b4` `#[payload.name ' ' payload.surname]`​ のような DataWeave 式は ​`John Doe`​ を返します。これは、DataWeave が正しく JSON データを解釈しているためです。 `#['Received a ' attributes.method ' request for account ' attributes.uriParams.accountId '.The following users are notified: ' ++ (attributes.queryParams.*notify joinBy ', ')]`​ のような式は ​`Received a POST request for account salesforce. The following users are notified: admin, jane.doe`​ を返します。
文字 ​&​ と ​=​ はクエリパラメーター内でエンコードしないでください。次に例を示します。
間違った例 ​http://localhost:8081/api/v1/encode?param1%3Dusername%26param2%3DA
正しい例 ​http://localhost:8081/api/v1/encode?param1=username&param2=A
HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

メソッド

#[inboundProperties.’http.method’]

#[attributes.method]

パス

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

バージョン

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

マルチマップ​は、特定のキーに対して複数の値が許可される点を除き、マップと似ています。単一値セレクター (​.​) の使用時は最初の値を返しますが、複数値セレクター (​.*​) の使用時はすべての値の取得が許可されます。
### [](#mule-イベントへの-http-要求のマッピングの例)Mule イベントへの HTTP 要求のマッピングの例 次の図は、HTTP 要求と Mule イベントへのマッピングの例を示しています。 ![HTTP 要求と Mule イベントのマッピング](/mulesoft/current/ja-jp/http-connector/1.7/_images/request-mule-msg-map.png) [DataWeave](https://docs.mulesoft.com/dataweave/latest/)​ 言語を使用して、HTTP 要求データ属性とペイロードにアクセスします。 ### [](#http-要求のマルチパートフォームデータの例)HTTP 要求のマルチパートフォームデータの例 次の例は、HTTP ​**Listener**​ ソースによって受信された HTML フォームの HTTP 要求を示しています。さらに、この例は DataWeave 式を使用して ​`multipart/form-data`​ コンテンツを読み取る方法を示しています。 次の HTML フォームに基づいて説明します。 ```xml
How would you like to identify the logo?
Which is the logo file?
What is the main color in the logo?
``` HTTP ​**Listener**​ ソースは次の ​`multipart/form-data`​ HTTP 要求を受信します: ```text POST /api/v1/account/mulesoft/logo HTTP/1.1 Content-Type: multipart/form-data; boundary=489691234097965980223899 Host: localhost:8081 content-length: 34332 --489691234097965980223899 Content-Disposition: form-data; name="name" Corporate Logo --489691234097965980223899 Content-Disposition: form-data; name="logo"; filename="MuleSoft_logo.png" Content-Type: image/png .PNG . ... IHDR.......L......~..... pHYs...#...#.x.?v.. .IDATx....q.W.6.....~".N....t....t..#.....LD0T.CF0b..:.3......Q..@...q]U*y\c.... ....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`% .$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....^6.......|..P.....IEND.B`. --489691234097965980223899 Content-Disposition: form-data; name="color" blue --489691234097965980223899-- ``` DataWeave 式を使用すると、​`parts`​ オブジェクトを使用して名前または項目番号で HTTP 要求の各パラメーターデータにアクセスして読み取ることができます。たとえば、​`Corporate Logo`​ パラメーターデータを含む HTTP 要求の 2 番目のパートにアクセスするには、​`payload.parts.logo`​ または ​`payload.parts[1]`​ を使用できます。後者は、名前が指定されない場合に便利です。 各パート内で、そのコンテンツとヘッダーにアクセスできます。たとえば、​`payload.parts.color.content`​ は ​`blue`​ を返し、​`payload.parts.logo.headers.'Content-Type'`​ は ​`application/png`​ を返します。 パートのファイル名にアクセスすることもできます。たとえば、​`Content-Disposition`​ ヘッダーは解析されて ​`payload.parts.logo.headers.'Content-Disposition'.filename`​ のような式を許可します。この場合は ​`MuleSoft_logo.png`​ が返されます。 マルチパートコンテンツの読み取りと書き込みについての詳細は、​[「DataWeave でサポートされる形式」](https://docs.mulesoft.com/dataweave/latest/dataweave-formats)​を参照してください。 ## [](#http-応答の送信)HTTP 応答の送信 トリガーされたフローの実行が完了すると、HTTP ​**Listener**​ ソースは次のデフォルトの結果のいずれかを送信します。 - 実行成功: 200 状況コードと、本文としてメッセージペイロードを含む HTTP 応答 - 実行失敗: 500 状況コードと、本文としてフローエラーの説明を含む HTTP エラー応答 HTTP ​**Listener**​ ソース設定で、次のパラメーターを指定して HTTP 応答をカスタマイズできます。 - **Body (本文)** - **Header (ヘッダー)** - **Status code (状況コード)** - **Reason phrase (理由を示す語句)** DataWeave を使用して各パラメーターのコンテンツを生成でき、変数を使用してフローからデータを伝播できます。 ### [](#http-応答を送信する-mule-アプリケーションの作成の例)HTTP 応答を送信する Mule アプリケーションの作成の例 次の例は、Studio で HTTP ​**Listener**​ ソースの HTTP 応答を設定する方法を示しています。この例は、エンドポイントにアカウントのロゴを保存する Mule アプリケーションフローです。 - 正常に保存されると、通常の HTTP 応答は状況コード ​`201`​、理由を示す語句 ​`Created`​、本文 ​`Corporate Logo has been stored as a MuleSoft logo`​ を返します。 - 保存に失敗すると、HTTP エラー応答は ​`errorCode`​ 変数 (使用可能な場合) で定義された状況コードまたはデフォルトの ​`500`​ を返します。 - カスタムヘッダーは ​`X-Time`​ を返します。 - 本文は ​`Corporate Logo could not be stored`​ を返します。 - ロゴの保存時に ​`CONNECTIVITY`​ エラーがある場合、返される状況コードは ​`504`​、他のエラーはすべて ​`500`​ 状況コードになります。 エラー応答の理由を示す語句が定義されていないと、HTTP Connector は状況コードに基づいて理由の語句の定義を試みます。したがって、上記で説明した HTTP 応答のシナリオでは ​`Gateway Timeout`​ または ​`Internal Server Error`​ エラーが返されることがあります。 Mule アプリケーションをテストするには、2 つの列 ​`(accountId,logoName)`​ を含む ​`logo`​ というテーブルが必要です。このテーブルは Mule を使用して作成するか、別の方法で作成することができます。たとえば、次の XML コードは、Database Connector の ​**Execute script**​ 操作を使用してテーブルを作成する方法を示しています。 ```xml ``` Studio で Mule アプリケーションを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/account/{accountId}/logo`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 6. **\[OK\]**​ をクリックします。 7. HTTP ​**Listener**​ 設定画面で、​**\[Responses (応答)\]**​ タブをクリックします。 8. **\[Response (応答)\]**​ セクションで、次の値を設定します。 - **Body (本文)**​: `output text/plain --- vars.logoName ' has been stored as a ' vars.accountId ++ ' logo.'` - **Status code (状況コード)**​: `201` - **Reason phrase (理由を示す語句)**​: `Created` 1. **\[Error Response (エラー応答)\]**​ セクションで、次の値を設定します。 - **Body (本文)**​: `vars.logoName ++ ' could not be stored.'` - **Header (ヘッダー)**​: ```DataWeave output application/java --- { "X-Time" : "50s" // 4 } ``` - **Status code (状況コード)**​: `vars.errorCode default 500`​。 ![「Body (本文)」、「Header (ヘッダー)」、「Status code (状況コード)」、「Reason phrase (理由を示す語句)」 項目が表示されている HTTP Listener の応答設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-listener-9.png) 1. **\[Set Payload\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 2. **\[Name (名前)\]**​ を ​`logoName`​ に設定します。 3. **\[Value (値)\]**​ を式 ​`payload.parts.name.content`​ に設定します。 4. 別の ​**\[Set Variable\]**​ コンポーネントを最初の ​**\[Set Variable\]**​ コンポーネントの右にドラッグします。 5. **\[Name (名前)\]**​ を ​`accountId`​ に設定します。 6. **\[Value (値)\]**​ を式 ​`attributes.uriParams.accountId`​ に設定します。 7. Database の ​**\[Insert\]**​ 操作を 2 番目の ​**\[Set Variable\]**​ コンポーネントの右にドラッグします。 8. データベース接続を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 データベース接続の設定方法についての詳細は、​[「データベース接続の設定」](https://docs.mulesoft.com/db-connector/latest/database-connector-connection)​を参照してください。 9. **Insert**​ 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`INSERT INTO logo (accountId,logoName) VALUES (:accountId, :logoName`​) に設定します。 10. **\[Input parameters (入力パラメーター)\]**​ を式 ​`{'accountId': vars.accountId as String, 'logoName': vars.logoName as String}`​ に設定します。 11. **\[On Error Propagate\]**​ コンポーネントをフローの ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 12. **\[Type (種別)\]**​ を ​`DB:CONNECTIVITY`​ に設定します。 13. **\[Set Variable\]**​ コンポーネントを ​**\[On Error Propagate\]**​ コンポーネントにドラッグします。 14. **\[Name (名前)\]**​ を ​`errorCode`​ に設定します。 15. **\[Value (値)\]**​ を ​`504`​ に設定します。 16. Mule アプリケーションを保存して実行します。 17. 次の CURL コマンドを送信します。​`curl -v -F 'data=@/path/to/MuleSoft_logo.svg' -F name=mulesoftlogo [http://localhost:8081/account/muley/logo](http://localhost:8081/account/muley/logo)`​。 人間が読み取るにはコンテンツが長すぎるため、完全なペイロードは非表示にされています。 ```json * Trying 127.0.0.1... * TCP_NODELAY set * Connected to localhost (127.0.0.1) port 8081 (#0) > POST /account/muley/logo HTTP/1.1 > Host: localhost:8081 > User-Agent: curl/7.64.1 > Accept: */* > Content-Length: 5313 > Content-Type: multipart/form-data; boundary=------------------------d96e85d23101a1c3 > Expect: 100-continue > < HTTP/1.1 100 Continue * We are completely uploaded and fine < HTTP/1.1 201 Created < Content-Type: text/plain; charset=UTF-8 < Content-Length: 45 < Date: Tue, 18 Jan 2022 20:30:20 GMT < * Connection #0 to host localhost left intact mulesoftlogo has been stored as a muley logo.* Closing connection 0 ``` ### [](#http-応答を送信する-mule-アプリケーションの-xml-の例)HTTP 応答を送信する Mule アプリケーションの XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-documentation) - [HTTP Connector トラブルシューティングガイド](https://docs.mulesoft.com/jp/http-connector/1.7/http-troubleshooting) - [DataWeave 形式](https://docs.mulesoft.com/dataweave/latest/dataweave-formats) - [TLS 設定](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-documentation#HttpResponseAttributes) # HTTP Listener ソースの設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースでは、HTTP サーバーをセットアップして、HTTP 要求を受信したらフローをトリガーすることができます。 ソースが受け入れるメソッド (​`GET`​、​`POST`​ やメソッドのリスト) を選択できます。HTTP 要求を受信するパスも選択できるため、さまざまなフローを使用して要求を転送することができます。 HTTP 要求を受信すると、HTTP ​**Listener**​ ソースは要求データを使用してフローをトリガーします。HTTP 本文はペイロードとして設定され、ヘッダーやクエリパラメーターなどの残りの HTTP データは属性として設定されます。 フローの実行終了後、HTTP ​**Listener**​ ソースはフロー実行が成功かどうかに基づいて異なる状況コードを返す HTTP 応答を送信します。また、ソースによって HTTP 応答がどのように生成されるかをコネクタのソース設定でカスタマイズすることができます。 ## [](#http-リスナー接続を設定する)HTTP リスナー接続を設定する HTTP ​**Listener**​ ソースを使用するには、次の設定を使用して接続を定義する必要があります。 - **Host (ホスト)**​ 要求が受信される場所を示します。ホスト名 (​`localhost`​ など)、​`www.mulesoft.com`​、IP (​`127.0.0.1`​、​`::1`​ など) を指定できます。 - **Port (ポート)**​ 要求が受信される場所を示します。 - **Protocol (プロトコル)**​ 通信のプロトコルを示します。プレーンな接続の場合は HTTP、セキュアな TLS 接続の場合は HTTPS を使用します。 HTTPS を介したセキュアな接続を有効にするには、接続に TLS コンテキストを定義し、次を指定する必要があります。 - サーバーのキーストア - トラストストア (相互認証が必要な場合) TLS 設定についての詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 さらに、すべての HTTP ​**Listener**​ ソースに適用される ​**\[Base path (ベースパス)\]**​ 項目を設定できます。 次の例は、Studio で HTTP ​**Listener**​ 接続を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 ![「Path (パス)」 項目が /test に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-listener-1.png) 1. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 2. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 ![「Host (ホスト)」 項目が 0.0.0.0、「Port (ポート)」 項目が 8081 に設定された、HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-listener-2.png) 1. **\[TLS\]**​ タブをクリックします。 2. **\[TLS configuration (TLS 設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、​**\[Path (パス)\]**​ を ​`keystore.jks`​ に、​**\[Password (パスワード)\]**​ を ​`MyP455W0rD`​ に設定します。 ![「Path (パス)」 項目が keystore.jks、「Password (パスワード)」 項目が MyP455W0rD に設定された 「Trust Store Configuration (トラストストア設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-listener-3.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`host`​、​`port`​、​`path`​、および ​`trust-store`​ の設定は次のように記述されます。 ```xml ``` ソースの ​**\[Base path (ベースパス)\]**​ 項目を設定する手順は、次のとおりです。 1. HTTP ​**Listener**​ 設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックしてグローバル要素を設定します。 2. **\[HTTP Listener config (HTTP リスナー設定)\]**​ で、​**\[Base path (ベースパス)\]**​ を ​`api/v1`​ に設定します。 ![「Base path (ベースパス)」 項目が api/v1 に設定された HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-listener-4.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`basePath`​ 設定は次のように記述されます。 ```xml ```
プロジェクトを CloudHub にデプロイする場合、マシンのすべてのインスタンスをリスンするように ​[Host (ホスト)]​ を ​0.0.0.0​ に設定する必要があります。
テスト目的でローカルにデプロイする場合は、ローカルに生成された要求のみを受信するように ​[Host (ホスト)]​ を ​localhost​ に設定します。アプリケーションが外部の脅威から攻撃を受けにくくなります。
また、高度な設定で、接続が永続的かどうかも定義できます。永続的ではない場合、タイムアウトが設定されます。 ## [](#パスの設定)パスの設定 HTTP ​**Listener**​ ソースは、フロー内のイベントトリガーとして機能するため、使用する設定と、HTTP 要求をリスンするパスを参照する必要があります。 パスは、静的 (完全一致が必要) にするか、機能のプレースホルダーを使用できます。プレースホルダーには次を使用できます。 - ワイルドカード (​`*`​) 比較対象の一部または全部と一致します。パスの末尾にワイルドカードを使用すると、未管理のリソースへの要求を取得してより適切なエラーメッセージを表示するのに役立ちます。 - パラメーター (​`{param}`​) 比較対象の一部または全部と一致するだけでなく、URI パラメーターマップ上のそれらの値も取得します。 次の例は、3 つの HTTP ​**Listener**​ ソースの異なるパスの設定を示しています。パスは ​**\[Path (パス)\]**​ 項目で定義されており、​**\[Base path (ベースパス)\]**​ 項目は ​`api/v1`​ に設定されています。 - `account/mulesoft/main-contact` パス要求 ​`http://awesome-company.com/api/v1/account/mulesoft/main-contact`​ とのみ完全一致します。 - `account/{accountId}/main-contact` 類似の構造を持つすべてのパス要求 (​`http://awesome-company.com/api/v1/account/salesforce/main-contact`​ など) と一致し、​`salesforce`​ を ​`accountId`​ の値として保存します。 - `account/{accountId}/*` `main-contact`​ とは異なるすべてのパス要求 (​`http://awesome-company.com/api/v1/account/mulesoft/users`​ など) と一致し、​`mulesoft`​ を ​`accountId`​ の値として保存します。 Mule アプリケーションに複数の HTTP ​**Listener**​ ソースがある場合、HTTP 要求は常に最も具体的なソースに転送されます。上記の例では、最初の HTTP ​**Listener**​ ソースは ​`accountId: mulesoft`​ とサフィックス ​`main-contact`​ を含む要求を受信し、2 番目のソースは異なる ​`accountId`​ 値を受信します。 ## [](#許可されるメソッドを設定する)許可されるメソッドを設定する HTTP 要求は、受信した HTTP メソッドに基づいて転送されます。デフォルトでは、HTTP ​**Listener**​ ソースはすべてのメソッドをサポートしますが、使用可能なメソッドを制限でき、カスタムメソッドを設定することもできます。 次の例は、Studio で ​**\[Allowed methods (許可されるメソッド)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. HTTP ​**Listener**​ ソース設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 4. **\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 ![「Allowed methods (許可されるメソッド)」 項目が GET に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-listener-5.png) **設定 XML**​ エディターでは、​`allowedMethods`​ 設定は次のように記述されます。 ```xml ``` Mule アプリケーションに複数の HTTP ​**Listener**​ ソースがある場合、要求はメソッドと最初に一致したソースに転送されるため、デフォルトのソースは常に最後に定義する必要があります。 次の例は、​**\[Allowed method (許可されるメソッド)\]**​ 項目が ​`GET`​、​`POST`​、​`PUT`​ に設定された、異なる HTTP ​**Listener**​ ソース設定を示しています。この異なる設定により、HTTP 要求は異なるフローに転送され、データへのユーザーアクセスを指定し、制限することができます。 ```xml ``` ## [](#応答ストリーミングモードを設定する)応答ストリーミングモードを設定する HTTP Connector は、レスポンスボディの管理時に本文のサイズが明らかではない場合、送信するデータの種類を考慮し、​_chunked_​ エンコードを使用します。これによりサイズ情報のないストリームとなります。 この動作を制御するには、​**\[Response streaming mode (応答ストリーミングモード)\]**​ 項目を次のいずれかのオプションに設定します。 - **AUTO (デフォルト)**​ 本文のサイズが定義されている場合、​`Content-Length`​ エンコードを使用します。定義されていない場合は ​`Transfer-Encoding: chunked`​ を使用します。 - **ALWAYS**​ 存在するサイズデータに関係なく ​`Transfer-Encoding: chunked`​ を使用します。 - **NEVER**​ `Content-Length`​ エンコードを使用し、必要に応じてストリームをコンシュームしてデータサイズを判定します。 次の例は、Studio で ​**\[Response streaming mode (応答ストリーミングモード)\]**​ 項目を設定する方法を示しています。この例では、アカウントの主連絡先データは常に ​`Content-Length`​ エンコードを返します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`account/{accountId}/main-contact`​ に設定します。 4. HTTP ​**Listener**​ ソース設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 5. **\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 6. **\[Response streaming mode (応答ストリーミングモード)\]**​ を ​`NEVER`​ に設定します。 ![「Allowed methods (許可されるメソッド)」 項目が GET、「Response streaming mode (応答ストリーミングモード)」 項目が NEVER に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-listener-6.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`allowedMethods`​ および ​`responseStreamingMode`​ の設定は次のように記述されます。 ```xml ``` ## [](#読み取りタイムアウトの設定)読み取りタイムアウトの設定 読み取りタイムアウトとは、HTTP ​**Listener**​ ソースが読み取りタイムアウト (ミリ秒) が経過してもデータを読み取らない場合、コネクタでタイムアウトエラーが発生することを意味します。​**\[Read timeout (読み取りタイムアウト)\]**​ 項目を使用して、クライアントが次のような HTTP 要求を送信しないようにします。 ```JSON POST /test HTTP/1.1 Host: localhost:8081 Content-Length: 10000 2 ``` 読み取りタイムアウトを指定しないと、​**Listener**​ ソースはデータをいつまでも待機するため、接続が解放されません。​**\[Read timeout (読み取りタイムアウト)\]**​ 項目はデフォルトで 30000 に設定されます。時間単位はミリ秒です。 ソースの読み取りタイムアウトを設定するには、HTTP ​**Listener**​ 設定ウィンドウで ​**\[Read timeout (読み取りタイムアウト)\]**​ 項目を目的の値に設定します。 ![「Read timeout (読み取りタイムアウト)」 項目が 30000 に設定された 「HTTP Listener config (HTTP リスナー設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-listener-7.png) **設定 XML**​ エディターでは、​`readTimeout`​ 設定は次のように記述されます。 ```xml ``` ## [](#無効な転送エンコードヘッダーの拒否の設定)無効な転送エンコードヘッダーの拒否の設定 [RFC7230](https://www.rfc-editor.org/rfc/rfc7230.html)​ と [RFC2616](https://www.rfc-editor.org/rfc/rfc2616.html)​ に基づいて有効な Transfer-Encoding ヘッダーは ​`chunked`​、​`deflate`​、​`compress`​、​`identity`​、​`gzip`​ です。これらのヘッダーでは大文字と小文字は区別されません。 無効な Transfer-Encoding ヘッダーを含む要求を拒否するには、HTTP ​**Listener**​ 設定ウィンドウで ​**\[Reject invalid transfer encoding (無効な転送エンコードを拒否)\]**​ チェックボックスをオンにします。 ![「Reject invalid transfer encoding (無効な転送エンコードを拒否)」 項目が選択されている 「HTTP Listener config (HTTP リスナー設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-listener-8.png) **設定 XML**​ エディターでは、​`rejectInvalidTransferEncoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#http-要求の受信)HTTP 要求の受信 HTTP ​**Listener**​ ソースが HTTP 要求を受信すると、HTTP 要求行からのデータにはメソッド、要求パス、クエリ、URI パラメーター、ヘッダーが属性として含まれます。本文はペイロードを設定し、​`Content-Type`​ ヘッダーは MIME タイプを設定します。これにより、他のコンポーネントがペイロードの MIME タイプを検査できます。たとえば、DataWeave では HTTP ペイロードを使用するのに入力情報を必要としません。​`HttpRequestAttributes`​ 構文を使用してヘッダー、クエリパラメーターなどの属性を参照できます。 HTTP 要求を設定するときに、​`Content-Type`​ ヘッダーを設定しないでください。Mule Runtime Engine は、メッセージペイロードからヘッダーを自動的に推定します。​`multipart/form-data`​ 形式のペイロードで ​`Content-Type`​ ヘッダーを設定すると、HTTP 要求は 400 エラー状況で失敗します。 さらに、HTTP 要求に ​`X-Correlation-ID`​ ヘッダーまたは ​`MULE_CORRELATION_ID`​ ヘッダー (Mule 3 との相互運用目的) のいずれかが含まれている場合、トレーサビリティ目的でメッセージの相関 ID が設定されます。 ### [](#http-要求の例)HTTP 要求の例 次の例は、HTTP 要求を示しています。 ```JSON POST api/v1/account/salesforce/main-contact?overwrite=true¬ify=jane.doe¬ify=admin HTTP/1.1 Host: localhost:8081 Content-Type: application/json Content-Length: 166 X-Correlation-ID: 9cf32672-4f0b-4e8b-b988-40c13aae85b4 { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` メッセージの相関 ID は ​`9cf32672-4f0b-4e8b-b988-40c13aae85b4`​ です。 ペイロードは JSON 形式です: ```JSON { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` 属性は次のとおりです。 - method: `POST` - listenerPath: `api/v1/account/{accountId}/main-contact` - requestPath: `api/v1/account/salesforce/main-contact` - relativePath: `account/salesforce/main-contact` - queryParams: エントリ ​`overwrite=true`​、​`notify=jane.doe`​、​`notify=admin`​ を含むマルチマップ - uriParams: `accountId ⇒ salesforce`​ を含むマップ - headers: エントリ ​`Host=localhost:8081`​、​`Content-Type=application/json`​、​`Content-Length=166`​、​`X-Correlation-ID=9cf32672-4f0b-4e8b-b988-40c13aae85b4` `#[payload.name ' ' payload.surname]`​ のような DataWeave 式は ​`John Doe`​ を返します。これは、DataWeave が正しく JSON データを解釈しているためです。 `#['Received a ' attributes.method ' request for account ' attributes.uriParams.accountId '.The following users are notified: ' ++ (attributes.queryParams.*notify joinBy ', ')]`​ のような式は ​`Received a POST request for account salesforce. The following users are notified: admin, jane.doe`​ を返します。 HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

メソッド

#[inboundProperties.’http.method’]

#[attributes.method]

パス

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

バージョン

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

マルチマップ​は、特定のキーに対して複数の値が許可される点を除き、マップと似ています。単一値セレクター (​.​) の使用時は最初の値を返しますが、複数値セレクター (​.*​) の使用時はすべての値の取得が許可されます。
### [](#mule-イベントへの-http-要求のマッピングの例)Mule イベントへの HTTP 要求のマッピングの例 次の図は、HTTP 要求と Mule イベントへのマッピングの例を示しています。 ![HTTP 要求と Mule イベントのマッピング](/mulesoft/current/ja-jp/http-connector/1.8/_images/request-mule-msg-map.png) [DataWeave](https://docs.mulesoft.com/dataweave/latest/)​ 言語を使用して、HTTP 要求データ属性とペイロードにアクセスします。 ### [](#http-要求のマルチパートフォームデータの例)HTTP 要求のマルチパートフォームデータの例 次の例は、HTTP ​**Listener**​ ソースによって受信された HTML フォームの HTTP 要求を示しています。さらに、この例は DataWeave 式を使用して ​`multipart/form-data`​ コンテンツを読み取る方法を示しています。 次の HTML フォームに基づいて説明します。 ```xml
How would you like to identify the logo?
Which is the logo file?
What is the main color in the logo?
``` HTTP ​**Listener**​ ソースは次の ​`multipart/form-data`​ HTTP 要求を受信します: ```text POST /api/v1/account/mulesoft/logo HTTP/1.1 Content-Type: multipart/form-data; boundary=489691234097965980223899 Host: localhost:8081 content-length: 34332 --489691234097965980223899 Content-Disposition: form-data; name="name" Corporate Logo --489691234097965980223899 Content-Disposition: form-data; name="logo"; filename="MuleSoft_logo.png" Content-Type: image/png .PNG . ... IHDR.......L......~..... pHYs...#...#.x.?v.. .IDATx....q.W.6.....~".N....t....t..#.....LD0T.CF0b..:.3......Q..@...q]U*y\c.... ....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`% .$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....^6.......|..P.....IEND.B`. --489691234097965980223899 Content-Disposition: form-data; name="color" blue --489691234097965980223899-- ``` DataWeave 式を使用すると、​`parts`​ オブジェクトを使用して名前または項目番号で HTTP 要求の各パラメーターデータにアクセスして読み取ることができます。たとえば、​`Corporate Logo`​ パラメーターデータを含む HTTP 要求の 2 番目のパートにアクセスするには、​`payload.parts.logo`​ または ​`payload.parts[1]`​ を使用できます。後者は、名前が指定されない場合に便利です。 各パート内で、そのコンテンツとヘッダーにアクセスできます。たとえば、​`payload.parts.color.content`​ は ​`blue`​ を返し、​`payload.parts.logo.headers.'Content-Type'`​ は ​`application/png`​ を返します。 パートのファイル名にアクセスすることもできます。たとえば、​`Content-Disposition`​ ヘッダーは解析されて ​`payload.parts.logo.headers.'Content-Disposition'.filename`​ のような式を許可します。この場合は ​`MuleSoft_logo.png`​ が返されます。 マルチパートコンテンツの読み取りと書き込みについての詳細は、​[「DataWeave でサポートされる形式」](https://docs.mulesoft.com/dataweave/latest/dataweave-formats)​を参照してください。 ## [](#http-応答の送信)HTTP 応答の送信 トリガーされたフローの実行が完了すると、HTTP ​**Listener**​ ソースは次のデフォルトの結果のいずれかを送信します。 - 実行成功: 200 状況コードと、本文としてメッセージペイロードを含む HTTP 応答 - 実行失敗: 500 状況コードと、本文としてフローエラーの説明を含む HTTP エラー応答 HTTP ​**Listener**​ ソース設定で、次のパラメーターを指定して HTTP 応答をカスタマイズできます。 - **Body (本文)** - **Header (ヘッダー)** - **Status code (状況コード)** - **Reason phrase (理由を示す語句)** DataWeave を使用して各パラメーターのコンテンツを生成でき、変数を使用してフローからデータを伝播できます。 ### [](#http-応答を送信する-mule-アプリケーションの作成の例)HTTP 応答を送信する Mule アプリケーションの作成の例 次の例は、Studio で HTTP ​**Listener**​ ソースの HTTP 応答を設定する方法を示しています。この例は、エンドポイントにアカウントのロゴを保存する Mule アプリケーションフローです。 - 正常に保存されると、通常の HTTP 応答は状況コード ​`201`​、理由を示す語句 ​`Created`​、本文 ​`Corporate Logo has been stored as a MuleSoft logo`​ を返します。 - 保存に失敗すると、HTTP エラー応答は ​`errorCode`​ 変数 (使用可能な場合) で定義された状況コードまたはデフォルトの ​`500`​ を返します。 - カスタムヘッダーは ​`X-Time`​ を返します。 - 本文は ​`Corporate Logo could not be stored`​ を返します。 - ロゴの保存時に ​`CONNECTIVITY`​ エラーがある場合、返される状況コードは ​`504`​、他のエラーはすべて ​`500`​ 状況コードになります。 エラー応答の理由を示す語句が定義されていないと、HTTP Connector は状況コードに基づいて理由の語句の定義を試みます。したがって、上記で説明した HTTP 応答のシナリオでは ​`Gateway Timeout`​ または ​`Internal Server Error`​ エラーが返されることがあります。 Mule アプリケーションをテストするには、2 つの列 ​`(accountId,logoName)`​ を含む ​`logo`​ というテーブルが必要です。このテーブルは Mule を使用して作成するか、別の方法で作成することができます。たとえば、次の XML コードは、Database Connector の ​**Execute script**​ 操作を使用してテーブルを作成する方法を示しています。 ```xml ``` Studio で Mule アプリケーションを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/account/{accountId}/logo`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 6. **\[OK\]**​ をクリックします。 7. HTTP ​**Listener**​ 設定画面で、​**\[Responses (応答)\]**​ タブをクリックします。 8. **\[Response (応答)\]**​ セクションで、次の値を設定します。 - **Body (本文)**​: `output text/plain --- vars.logoName ' has been stored as a ' vars.accountId ++ ' logo.'` - **Status code (状況コード)**​: `201` - **Reason phrase (理由を示す語句)**​: `Created` 1. **\[Error Response (エラー応答)\]**​ セクションで、次の値を設定します。 - **Body (本文)**​: `vars.logoName ++ ' could not be stored.'` - **Header (ヘッダー)**​: ```DataWeave output application/java --- { "X-Time" : "50s" // 4 } ``` - **Status code (状況コード)**​: `vars.errorCode default 500`​。 ![「Body (本文)」、「Header (ヘッダー)」、「Status code (状況コード)」、「Reason phrase (理由を示す語句)」 項目が表示されている HTTP Listener の応答設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-listener-9.png) 1. **\[Set Payload\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 2. **\[Name (名前)\]**​ を ​`logoName`​ に設定します。 3. **\[Value (値)\]**​ を式 ​`payload.parts.name.content`​ に設定します。 4. 別の ​**\[Set Variable\]**​ コンポーネントを最初の ​**\[Set Variable\]**​ コンポーネントの右にドラッグします。 5. **\[Name (名前)\]**​ を ​`accountId`​ に設定します。 6. **\[Value (値)\]**​ を式 ​`attributes.uriParams.accountId`​ に設定します。 7. Database の ​**\[Insert\]**​ 操作を 2 番目の ​**\[Set Variable\]**​ コンポーネントの右にドラッグします。 8. データベース接続を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 データベース接続の設定方法についての詳細は、​[「データベース接続の設定」](https://docs.mulesoft.com/db-connector/latest/database-connector-connection)​を参照してください。 9. **Insert**​ 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`INSERT INTO logo (accountId,logoName) VALUES (:accountId, :logoName`​) に設定します。 10. **\[Input parameters (入力パラメーター)\]**​ を式 ​`{'accountId': vars.accountId as String, 'logoName': vars.logoName as String}`​ に設定します。 11. **\[On Error Propagate\]**​ コンポーネントをフローの ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 12. **\[Type (種別)\]**​ を ​`DB:CONNECTIVITY`​ に設定します。 13. **\[Set Variable\]**​ コンポーネントを ​**\[On Error Propagate\]**​ コンポーネントにドラッグします。 14. **\[Name (名前)\]**​ を ​`errorCode`​ に設定します。 15. **\[Value (値)\]**​ を ​`504`​ に設定します。 16. Mule アプリケーションを保存して実行します。 17. 次の CURL コマンドを送信します。​`curl -v -F 'data=@/path/to/MuleSoft_logo.svg' -F name=mulesoftlogo [http://localhost:8081/account/muley/logo](http://localhost:8081/account/muley/logo)`​。 人間が読み取るにはコンテンツが長すぎるため、完全なペイロードは非表示にされています。 ```json * Trying 127.0.0.1... * TCP_NODELAY set * Connected to localhost (127.0.0.1) port 8081 (#0) > POST /account/muley/logo HTTP/1.1 > Host: localhost:8081 > User-Agent: curl/7.64.1 > Accept: */* > Content-Length: 5313 > Content-Type: multipart/form-data; boundary=------------------------d96e85d23101a1c3 > Expect: 100-continue > < HTTP/1.1 100 Continue * We are completely uploaded and fine < HTTP/1.1 201 Created < Content-Type: text/plain; charset=UTF-8 < Content-Length: 45 < Date: Tue, 18 Jan 2022 20:30:20 GMT < * Connection #0 to host localhost left intact mulesoftlogo has been stored as a muley logo.* Closing connection 0 ``` ### [](#http-応答を送信する-mule-アプリケーションの-xml-の例)HTTP 応答を送信する Mule アプリケーションの XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation) - [HTTP Connector トラブルシューティングガイド](https://docs.mulesoft.com/jp/http-connector/1.8/http-troubleshooting) - [DataWeave 形式](https://docs.mulesoft.com/dataweave/latest/dataweave-formats) - [TLS 設定](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation#HttpResponseAttributes) # HTTP Listener ソースの設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースでは、HTTP サーバーをセットアップして、HTTP 要求を受信したらフローをトリガーすることができます。 ソースが受け入れるメソッド (​`GET`​、​`POST`​ やメソッドのリスト) を選択できます。HTTP 要求を受信するパスも選択できるため、さまざまなフローを使用して要求を転送することができます。 HTTP 要求を受信すると、HTTP ​**Listener**​ ソースは要求データを使用してフローをトリガーします。HTTP 本文はペイロードとして設定され、ヘッダーやクエリパラメーターなどの残りの HTTP データは属性として設定されます。 フローの実行終了後、HTTP ​**Listener**​ ソースはフロー実行が成功かどうかに基づいて異なる状況コードを返す HTTP 応答を送信します。また、ソースによって HTTP 応答がどのように生成されるかをコネクタのソース設定でカスタマイズすることができます。 ## [](#http-リスナー接続を設定する)HTTP リスナー接続を設定する HTTP ​**Listener**​ ソースを使用するには、次の設定を使用して接続を定義する必要があります。 - **Host (ホスト)**​ 要求が受信される場所を示します。ホスト名 (​`localhost`​ など)、​`www.mulesoft.com`​、IP (​`127.0.0.1`​、​`::1`​ など) を指定できます。 - **Port (ポート)**​ 要求が受信される場所を示します。 - **Protocol (プロトコル)**​ 通信のプロトコルを示します。プレーンな接続の場合は HTTP、セキュアな TLS 接続の場合は HTTPS を使用します。 HTTPS を介したセキュアな接続を有効にするには、接続に TLS コンテキストを定義し、次を指定する必要があります。 - サーバーのキーストア - トラストストア (相互認証が必要な場合) TLS 設定についての詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 さらに、すべての HTTP ​**Listener**​ ソースに適用される ​**\[Base path (ベースパス)\]**​ 項目を設定できます。 次の例は、Studio で HTTP ​**Listener**​ 接続を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 ![「Path (パス)」 項目が /test に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-listener-1.png) 1. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 2. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 ![「Host (ホスト)」 項目が 0.0.0.0、「Port (ポート)」 項目が 8081 に設定された、HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-listener-2.png) 1. **\[TLS\]**​ タブをクリックします。 2. **\[TLS configuration (TLS 設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 3. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、​**\[Path (パス)\]**​ を ​`keystore.jks`​ に、​**\[Password (パスワード)\]**​ を ​`MyP455W0rD`​ に設定します。 ![「Path (パス)」 項目が keystore.jks、「Password (パスワード)」 項目が MyP455W0rD に設定された 「Trust Store Configuration (トラストストア設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-listener-3.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`host`​、​`port`​、​`path`​、および ​`trust-store`​ の設定は次のように記述されます。 ```xml ``` ソースの ​**\[Base path (ベースパス)\]**​ 項目を設定する手順は、次のとおりです。 1. HTTP ​**Listener**​ 設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックしてグローバル要素を設定します。 2. **\[HTTP Listener config (HTTP リスナー設定)\]**​ で、​**\[Base path (ベースパス)\]**​ を ​`api/v1`​ に設定します。 ![「Base path (ベースパス)」 項目が api/v1 に設定された HTTP リスナーのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-listener-4.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`basePath`​ 設定は次のように記述されます。 ```xml ```
プロジェクトを CloudHub にデプロイする場合、マシンのすべてのインスタンスをリスンするように ​[Host (ホスト)]​ を ​0.0.0.0​ に設定する必要があります。
テスト目的でローカルにデプロイする場合は、ローカルに生成された要求のみを受信するように ​[Host (ホスト)]​ を ​localhost​ に設定します。アプリケーションが外部の脅威から攻撃を受けにくくなります。
また、高度な設定で、接続が永続的かどうかも定義できます。永続的ではない場合、タイムアウトが設定されます。 ## [](#パスの設定)パスの設定 HTTP ​**Listener**​ ソースは、フロー内のイベントトリガーとして機能するため、使用する設定と、HTTP 要求をリスンするパスを参照する必要があります。 パスは、静的 (完全一致が必要) にするか、機能のプレースホルダーを使用できます。プレースホルダーには次を使用できます。 - ワイルドカード (​`*`​) 比較対象の一部または全部と一致します。パスの末尾にワイルドカードを使用すると、未管理のリソースへの要求を取得してより適切なエラーメッセージを表示するのに役立ちます。 - パラメーター (​`{param}`​) 比較対象の一部または全部と一致するだけでなく、URI パラメーターマップ上のそれらの値も取得します。 次の例は、3 つの HTTP ​**Listener**​ ソースの異なるパスの設定を示しています。パスは ​**\[Path (パス)\]**​ 項目で定義されており、​**\[Base path (ベースパス)\]**​ 項目は ​`api/v1`​ に設定されています。 - `account/mulesoft/main-contact` パス要求 ​`http://awesome-company.com/api/v1/account/mulesoft/main-contact`​ とのみ完全一致します。 - `account/{accountId}/main-contact` 類似の構造を持つすべてのパス要求 (​`http://awesome-company.com/api/v1/account/salesforce/main-contact`​ など) と一致し、​`salesforce`​ を ​`accountId`​ の値として保存します。 - `account/{accountId}/*` `main-contact`​ とは異なるすべてのパス要求 (​`http://awesome-company.com/api/v1/account/mulesoft/users`​ など) と一致し、​`mulesoft`​ を ​`accountId`​ の値として保存します。 Mule アプリケーションに複数の HTTP ​**Listener**​ ソースがある場合、HTTP 要求は常に最も具体的なソースに転送されます。上記の例では、最初の HTTP ​**Listener**​ ソースは ​`accountId: mulesoft`​ とサフィックス ​`main-contact`​ を含む要求を受信し、2 番目のソースは異なる ​`accountId`​ 値を受信します。 ## [](#許可されるメソッドを設定する)許可されるメソッドを設定する HTTP 要求は、受信した HTTP メソッドに基づいて転送されます。デフォルトでは、HTTP ​**Listener**​ ソースはすべてのメソッドをサポートしますが、使用可能なメソッドを制限でき、カスタムメソッドを設定することもできます。 次の例は、Studio で ​**\[Allowed methods (許可されるメソッド)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. HTTP ​**Listener**​ ソース設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 4. **\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 ![「Allowed methods (許可されるメソッド)」 項目が GET に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-listener-5.png) **設定 XML**​ エディターでは、​`allowedMethods`​ 設定は次のように記述されます。 ```xml ``` Mule アプリケーションに複数の HTTP ​**Listener**​ ソースがある場合、要求はメソッドと最初に一致したソースに転送されるため、デフォルトのソースは常に最後に定義する必要があります。 次の例は、​**\[Allowed method (許可されるメソッド)\]**​ 項目が ​`GET`​、​`POST`​、​`PUT`​ に設定された、異なる HTTP ​**Listener**​ ソース設定を示しています。この異なる設定により、HTTP 要求は異なるフローに転送され、データへのユーザーアクセスを指定し、制限することができます。 ```xml ``` ## [](#応答ストリーミングモードを設定する)応答ストリーミングモードを設定する HTTP Connector は、レスポンスボディの管理時に本文のサイズが明らかではない場合、送信するデータの種類を考慮し、​_chunked_​ エンコードを使用します。これによりサイズ情報のないストリームとなります。 この動作を制御するには、​**\[Response streaming mode (応答ストリーミングモード)\]**​ 項目を次のいずれかのオプションに設定します。 - **AUTO (デフォルト)**​ 本文のサイズが定義されている場合、​`Content-Length`​ エンコードを使用します。定義されていない場合は ​`Transfer-Encoding: chunked`​ を使用します。 - **ALWAYS**​ 存在するサイズデータに関係なく ​`Transfer-Encoding: chunked`​ を使用します。 - **NEVER**​ `Content-Length`​ エンコードを使用し、必要に応じてストリームをコンシュームしてデータサイズを判定します。 次の例は、Studio で ​**\[Response streaming mode (応答ストリーミングモード)\]**​ 項目を設定する方法を示しています。この例では、アカウントの主連絡先データは常に ​`Content-Length`​ エンコードを返します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`account/{accountId}/main-contact`​ に設定します。 4. HTTP ​**Listener**​ ソース設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 5. **\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 6. **\[Response streaming mode (応答ストリーミングモード)\]**​ を ​`NEVER`​ に設定します。 ![「Allowed methods (許可されるメソッド)」 項目が GET、「Response streaming mode (応答ストリーミングモード)」 項目が NEVER に設定された HTTP リスナー設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-listener-6.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`allowedMethods`​ および ​`responseStreamingMode`​ の設定は次のように記述されます。 ```xml ``` ## [](#読み取りタイムアウトの設定)読み取りタイムアウトの設定 読み取りタイムアウトとは、HTTP ​**Listener**​ ソースが読み取りタイムアウト (ミリ秒) が経過してもデータを読み取らない場合、コネクタでタイムアウトエラーが発生することを意味します。​**\[Read timeout (読み取りタイムアウト)\]**​ 項目を使用して、クライアントが次のような HTTP 要求を送信しないようにします。 ```JSON POST /test HTTP/1.1 Host: localhost:8081 Content-Length: 10000 2 ``` 読み取りタイムアウトを指定しないと、​**Listener**​ ソースはデータをいつまでも待機するため、接続が解放されません。​**\[Read timeout (読み取りタイムアウト)\]**​ 項目はデフォルトで 30000 に設定されます。時間単位はミリ秒です。 ソースの読み取りタイムアウトを設定するには、HTTP ​**Listener**​ 設定ウィンドウで ​**\[Read timeout (読み取りタイムアウト)\]**​ 項目を目的の値に設定します。 ![「Read timeout (読み取りタイムアウト)」 項目が 30000 に設定された 「HTTP Listener config (HTTP リスナー設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-listener-7.png) **設定 XML**​ エディターでは、​`readTimeout`​ 設定は次のように記述されます。 ```xml ``` ## [](#無効な転送エンコードヘッダーの拒否の設定)無効な転送エンコードヘッダーの拒否の設定 [RFC7230](https://www.rfc-editor.org/rfc/rfc7230.html)​ と [RFC2616](https://www.rfc-editor.org/rfc/rfc2616.html)​ に基づいて有効な Transfer-Encoding ヘッダーは ​`chunked`​、​`deflate`​、​`compress`​、​`identity`​、​`gzip`​ です。これらのヘッダーでは大文字と小文字は区別されません。 無効な Transfer-Encoding ヘッダーを含む要求を拒否するには、HTTP ​**Listener**​ 設定ウィンドウで ​**\[Reject invalid transfer encoding (無効な転送エンコードを拒否)\]**​ チェックボックスをオンにします。 ![「Reject invalid transfer encoding (無効な転送エンコードを拒否)」 項目が選択されている 「HTTP Listener config (HTTP リスナー設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-listener-8.png) **設定 XML**​ エディターでは、​`rejectInvalidTransferEncoding`​ 設定は次のように記述されます。 ```xml ``` ## [](#http-要求の受信)HTTP 要求の受信 HTTP ​**Listener**​ ソースが HTTP 要求を受信すると、HTTP 要求行からのデータにはメソッド、要求パス、クエリ、URI パラメーター、ヘッダーが属性として含まれます。本文はペイロードを設定し、​`Content-Type`​ ヘッダーは MIME タイプを設定します。これにより、他のコンポーネントがペイロードの MIME タイプを検査できます。たとえば、DataWeave では HTTP ペイロードを使用するのに入力情報を必要としません。​`HttpRequestAttributes`​ 構文を使用してヘッダー、クエリパラメーターなどの属性を参照できます。 HTTP 要求を設定するときに、​`Content-Type`​ ヘッダーを設定しないでください。Mule Runtime Engine は、メッセージペイロードからヘッダーを自動的に推定します。​`multipart/form-data`​ 形式のペイロードで ​`Content-Type`​ ヘッダーを設定すると、HTTP 要求は 400 エラー状況で失敗します。 さらに、HTTP 要求に ​`X-Correlation-ID`​ ヘッダーまたは ​`MULE_CORRELATION_ID`​ ヘッダー (Mule 3 との相互運用目的) のいずれかが含まれている場合、トレーサビリティ目的でメッセージの相関 ID が設定されます。 ### [](#http-要求の例)HTTP 要求の例 次の例は、HTTP 要求を示しています。 ```JSON POST api/v1/account/salesforce/main-contact?overwrite=true¬ify=jane.doe¬ify=admin HTTP/1.1 Host: localhost:8081 Content-Type: application/json Content-Length: 166 X-Correlation-ID: 9cf32672-4f0b-4e8b-b988-40c13aae85b4 { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` メッセージの相関 ID は ​`9cf32672-4f0b-4e8b-b988-40c13aae85b4`​ です。 ペイロードは JSON 形式です: ```JSON { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` 属性は次のとおりです。 - method: `POST` - listenerPath: `api/v1/account/{accountId}/main-contact` - requestPath: `api/v1/account/salesforce/main-contact` - relativePath: `account/salesforce/main-contact` - queryParams: エントリ ​`overwrite=true`​、​`notify=jane.doe`​、​`notify=admin`​ を含むマルチマップ - uriParams: `accountId ⇒ salesforce`​ を含むマップ - headers: エントリ ​`Host=localhost:8081`​、​`Content-Type=application/json`​、​`Content-Length=166`​、​`X-Correlation-ID=9cf32672-4f0b-4e8b-b988-40c13aae85b4` `#[payload.name ' ' payload.surname]`​ のような DataWeave 式は ​`John Doe`​ を返します。これは、DataWeave が正しく JSON データを解釈しているためです。 `#['Received a ' attributes.method ' request for account ' attributes.uriParams.accountId '.The following users are notified: ' ++ (attributes.queryParams.*notify joinBy ', ')]`​ のような式は ​`Received a POST request for account salesforce. The following users are notified: admin, jane.doe`​ を返します。 HTTP リスナー属性にアクセスするには、次の表に示す DataWeave 構文を使用します。
HTTP オブジェクト Mule Runtime Engine 3.x Mule Runtime Engine 4.x

メソッド

#[inboundProperties.’http.method’]

#[attributes.method]

パス

#[inboundProperties.’http.listener.path’]

#[attributes.listenerPath]

相対パス

#[inboundProperties.’http.relative.path’]

#[attributes.relativePath]

要求 URI

#[inboundProperties.’http.request.uri’]

#[attributes.requestUri]

クエリ文字列

#[inboundProperties.’http.query.string’]

#[attributes.queryString]

クエリパラメーター

#[inboundProperties.’http.query.params’]

#[attributes.queryParams]

URI パラメーター

#[inboundProperties.’http.uri.params’]

#[attributes.uriParams]

バージョン

#[inboundProperties.’http.version’]

#[attributes.version]

スキーマ

#[inboundProperties.’http.scheme’]

#[attributes.scheme]

ヘッダー

#[inboundProperties]

#[attributes.headers]

リモートアドレス

#[inboundProperties.’http.remote.address’]

#[attributes.remoteAddress]

クライアント証明書

#[inboundProperties.’http.client.cert’]

#[attributes.clientCertificate]

マルチマップ​は、特定のキーに対して複数の値が許可される点を除き、マップと似ています。単一値セレクター (​.​) の使用時は最初の値を返しますが、複数値セレクター (​.*​) の使用時はすべての値の取得が許可されます。
### [](#mule-イベントへの-http-要求のマッピングの例)Mule イベントへの HTTP 要求のマッピングの例 次の図は、HTTP 要求と Mule イベントへのマッピングの例を示しています。 ![HTTP 要求と Mule イベントのマッピング](/mulesoft/current/ja-jp/http-connector/1.9/_images/request-mule-msg-map.png) [DataWeave](https://docs.mulesoft.com/dataweave/latest/)​ 言語を使用して、HTTP 要求データ属性とペイロードにアクセスします。 ### [](#http-要求のマルチパートフォームデータの例)HTTP 要求のマルチパートフォームデータの例 次の例は、HTTP ​**Listener**​ ソースによって受信された HTML フォームの HTTP 要求を示しています。さらに、この例は DataWeave 式を使用して ​`multipart/form-data`​ コンテンツを読み取る方法を示しています。 次の HTML フォームに基づいて説明します。 ```xml
How would you like to identify the logo?
Which is the logo file?
What is the main color in the logo?
``` HTTP ​**Listener**​ ソースは次の ​`multipart/form-data`​ HTTP 要求を受信します: ```text POST /api/v1/account/mulesoft/logo HTTP/1.1 Content-Type: multipart/form-data; boundary=489691234097965980223899 Host: localhost:8081 content-length: 34332 --489691234097965980223899 Content-Disposition: form-data; name="name" Corporate Logo --489691234097965980223899 Content-Disposition: form-data; name="logo"; filename="MuleSoft_logo.png" Content-Type: image/png .PNG . ... IHDR.......L......~..... pHYs...#...#.x.?v.. .IDATx....q.W.6.....~".N....t....t..#.....LD0T.CF0b..:.3......Q..@...q]U*y\c.... ....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`% .$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....^6.......|..P.....IEND.B`. --489691234097965980223899 Content-Disposition: form-data; name="color" blue --489691234097965980223899-- ``` DataWeave 式を使用すると、​`parts`​ オブジェクトを使用して名前または項目番号で HTTP 要求の各パラメーターデータにアクセスして読み取ることができます。たとえば、​`Corporate Logo`​ パラメーターデータを含む HTTP 要求の 2 番目のパートにアクセスするには、​`payload.parts.logo`​ または ​`payload.parts[1]`​ を使用できます。後者は、名前が指定されない場合に便利です。 各パート内で、そのコンテンツとヘッダーにアクセスできます。たとえば、​`payload.parts.color.content`​ は ​`blue`​ を返し、​`payload.parts.logo.headers.'Content-Type'`​ は ​`application/png`​ を返します。 パートのファイル名にアクセスすることもできます。たとえば、​`Content-Disposition`​ ヘッダーは解析されて ​`payload.parts.logo.headers.'Content-Disposition'.filename`​ のような式を許可します。この場合は ​`MuleSoft_logo.png`​ が返されます。 マルチパートコンテンツの読み取りと書き込みについての詳細は、​[「DataWeave でサポートされる形式」](https://docs.mulesoft.com/dataweave/latest/dataweave-formats)​を参照してください。 ## [](#http-応答の送信)HTTP 応答の送信 トリガーされたフローの実行が完了すると、HTTP ​**Listener**​ ソースは次のデフォルトの結果のいずれかを送信します。 - 実行成功: 200 状況コードと、本文としてメッセージペイロードを含む HTTP 応答 - 実行失敗: 500 状況コードと、本文としてフローエラーの説明を含む HTTP エラー応答 HTTP ​**Listener**​ ソース設定で、次のパラメーターを指定して HTTP 応答をカスタマイズできます。 - **Body (本文)** - **Header (ヘッダー)** - **Status code (状況コード)** - **Reason phrase (理由を示す語句)** DataWeave を使用して各パラメーターのコンテンツを生成でき、変数を使用してフローからデータを伝播できます。 ### [](#http-応答を送信する-mule-アプリケーションの作成の例)HTTP 応答を送信する Mule アプリケーションの作成の例 次の例は、Studio で HTTP ​**Listener**​ ソースの HTTP 応答を設定する方法を示しています。この例は、エンドポイントにアカウントのロゴを保存する Mule アプリケーションフローです。 - 正常に保存されると、通常の HTTP 応答は状況コード ​`201`​、理由を示す語句 ​`Created`​、本文 ​`Corporate Logo has been stored as a MuleSoft logo`​ を返します。 - 保存に失敗すると、HTTP エラー応答は ​`errorCode`​ 変数 (使用可能な場合) で定義された状況コードまたはデフォルトの ​`500`​ を返します。 - カスタムヘッダーは ​`X-Time`​ を返します。 - 本文は ​`Corporate Logo could not be stored`​ を返します。 - ロゴの保存時に ​`CONNECTIVITY`​ エラーがある場合、返される状況コードは ​`504`​、他のエラーはすべて ​`500`​ 状況コードになります。 エラー応答の理由を示す語句が定義されていないと、HTTP Connector は状況コードに基づいて理由の語句の定義を試みます。したがって、上記で説明した HTTP 応答のシナリオでは ​`Gateway Timeout`​ または ​`Internal Server Error`​ エラーが返されることがあります。 Mule アプリケーションをテストするには、2 つの列 ​`(accountId,logoName)`​ を含む ​`logo`​ というテーブルが必要です。このテーブルは Mule を使用して作成するか、別の方法で作成することができます。たとえば、次の XML コードは、Database Connector の ​**Execute script**​ 操作を使用してテーブルを作成する方法を示しています。 ```xml ``` Studio で Mule アプリケーションを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/account/{accountId}/logo`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 6. **\[OK\]**​ をクリックします。 7. HTTP ​**Listener**​ 設定画面で、​**\[Responses (応答)\]**​ タブをクリックします。 8. **\[Response (応答)\]**​ セクションで、次の値を設定します。 - **Body (本文)**​: `output text/plain --- vars.logoName ' has been stored as a ' vars.accountId ++ ' logo.'` - **Status code (状況コード)**​: `201` - **Reason phrase (理由を示す語句)**​: `Created` 1. **\[Error Response (エラー応答)\]**​ セクションで、次の値を設定します。 - **Body (本文)**​: `vars.logoName ++ ' could not be stored.'` - **Header (ヘッダー)**​: ```DataWeave output application/java --- { "X-Time" : "50s" // 4 } ``` - **Status code (状況コード)**​: `vars.errorCode default 500`​。 ![「Body (本文)」、「Header (ヘッダー)」、「Status code (状況コード)」、「Reason phrase (理由を示す語句)」 項目が表示されている HTTP Listener の応答設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-listener-9.png) 1. **\[Set Payload\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 2. **\[Name (名前)\]**​ を ​`logoName`​ に設定します。 3. **\[Value (値)\]**​ を式 ​`payload.parts.name.content`​ に設定します。 4. 別の ​**\[Set Variable\]**​ コンポーネントを最初の ​**\[Set Variable\]**​ コンポーネントの右にドラッグします。 5. **\[Name (名前)\]**​ を ​`accountId`​ に設定します。 6. **\[Value (値)\]**​ を式 ​`attributes.uriParams.accountId`​ に設定します。 7. Database の ​**\[Insert\]**​ 操作を 2 番目の ​**\[Set Variable\]**​ コンポーネントの右にドラッグします。 8. データベース接続を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 データベース接続の設定方法についての詳細は、​[「データベース接続の設定」](https://docs.mulesoft.com/db-connector/latest/database-connector-connection)​を参照してください。 9. **Insert**​ 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`INSERT INTO logo (accountId,logoName) VALUES (:accountId, :logoName`​) に設定します。 10. **\[Input parameters (入力パラメーター)\]**​ を式 ​`{'accountId': vars.accountId as String, 'logoName': vars.logoName as String}`​ に設定します。 11. **\[On Error Propagate\]**​ コンポーネントをフローの ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 12. **\[Type (種別)\]**​ を ​`DB:CONNECTIVITY`​ に設定します。 13. **\[Set Variable\]**​ コンポーネントを ​**\[On Error Propagate\]**​ コンポーネントにドラッグします。 14. **\[Name (名前)\]**​ を ​`errorCode`​ に設定します。 15. **\[Value (値)\]**​ を ​`504`​ に設定します。 16. Mule アプリケーションを保存して実行します。 17. 次の CURL コマンドを送信します。​`curl -v -F 'data=@/path/to/MuleSoft_logo.svg' -F name=mulesoftlogo [http://localhost:8081/account/muley/logo](http://localhost:8081/account/muley/logo)`​。 人間が読み取るにはコンテンツが長すぎるため、完全なペイロードは非表示にされています。 ```json * Trying 127.0.0.1... * TCP_NODELAY set * Connected to localhost (127.0.0.1) port 8081 (#0) > POST /account/muley/logo HTTP/1.1 > Host: localhost:8081 > User-Agent: curl/7.64.1 > Accept: */* > Content-Length: 5313 > Content-Type: multipart/form-data; boundary=------------------------d96e85d23101a1c3 > Expect: 100-continue > < HTTP/1.1 100 Continue * We are completely uploaded and fine < HTTP/1.1 201 Created < Content-Type: text/plain; charset=UTF-8 < Content-Length: 45 < Date: Tue, 18 Jan 2022 20:30:20 GMT < * Connection #0 to host localhost left intact mulesoftlogo has been stored as a muley logo.* Closing connection 0 ``` ### [](#http-応答を送信する-mule-アプリケーションの-xml-の例)HTTP 応答を送信する Mule アプリケーションの XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation) - [HTTP Connector トラブルシューティングガイド](https://docs.mulesoft.com/jp/http-connector/1.9/http-troubleshooting) - [DataWeave 形式](https://docs.mulesoft.com/dataweave/latest/dataweave-formats) - [TLS 設定](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation#HttpResponseAttributes) # HTTP Polling ソースの設定 HTTP Connector 用 Anypoint Connector (HTTP Connector) では、指定された HTTP サーバーに対して、スケジュールされた HTTP 要求を実行する ​**Polling Source**​ イベントソースが提供されます。このソースでは、HTTP ​**Listener**​ ソースのようにユーザーからの HTTP 要求を待機しません。 HTTP ​**Polling Source**​ イベントソースでは、以下を設定できます。 - スケジュール頻度 (一定期間または Cron 式)。 - 応答の各項目がフローの異なる実行で実行されるように HTTP 応答を分割するイベントソース。 - ウォーターマークを取得する方法。 ## [](#http-request-操作とのリレーション)HTTP Request 操作とのリレーション HTTP ​**Polling Source**​ イベントソースは HTTP 要求 (HTTP ​**Request**​ 操作など) を実行するため、HTTP 要求グローバル設定 (URL、ポート、ベースパス、プロトコルの設定や、各自の実装で要求されるカスタム要求設定など) を使用してソースを設定します。 このソースは HTTP 要求を実行し、結果として得られる HTTP 応答を使用して、フローをトリガーする 1 つ以上のイベントを作成します。 次の設定例は、10 時間ごとにポーリングするポーリングソースを示しています。 ![Anypoint Studio の \[HTTP Polling source (HTTP Polling ソース)\] 設定ウィンドウ](_images/http-polling-source.png) **\[Configuration XML (設定 XML)\]**​ ビューでは、​``​、​``​、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#ポーリング頻度の設定)ポーリング頻度の設定 **\[Scheduling strategy (スケジュール戦略)\]**​ (​``​) 項目で、一定間隔または Cron 式としてスケジュール戦略を設定します。 **\[Configuration XML (設定 XML)\]**​ エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#パラメーターの設定)パラメーターの設定 HTTP ​**Polling Source**​ イベントソースでも、HTTP ​**Request**​ 操作と同じ方法で本文、ヘッダー、URI、パラメーター、クエリパラメーターを設定できます。 次の例は、値を使用して ​**\[Body (本文)\]**​ (​`polling-request-body`​)、​**\[Headers (ヘッダー)\]**​ (​`polling-request-headers`​)、​**\[URI parameters (URI パラメーター)\]**​ (​`polling-request-uri-param`​)、​**\[Query parameters (クエリパラメーター)\]**​ (​`polling-request-query-param`​) 項目を設定する方法を示しています。これには、式を追加することができます。これらの式はウォーターマークに連動できます。 **\[Configuration XML (設定 XML)\]**​ エディターでは、​`polling-request-body`​、​`polling-request-headers`​、​`polling-request-uri-param`​、​`polling-request-query-param`​ 設定は次のように記述されます。 ```xml ``` ## [](#分割式の設定)分割式の設定 HTTP ​**Polling Source**​ イベントソースが HTTP 要求を実行して HTTP 応答を取得したら、変換を実行し、その応答の各項目をフローの異なる実行で実行されるように HTTP 応答を分割できます。 たとえば、データベースからそのデータを取得するサーバーをポーリングし、そのサーバーから 50 件の結果が返されるとします。フロー間で応答を分割せず、​**For each**​ コンポーネントを使用しないで各結果を個別にフローに送信したいと考えています。応答を分割するには、​**\[Split expression (分割式)\]**​ (​`splitExpression`​) 項目を設定します。 HTTP ​**Request**​ 操作の後に参照するため、分割式では応答を​`ペイロード`​として参照します。 次の例は、項目が配列に含まれる JSON ペイロードを返すサーバーを示しています。​`set-payload`​ コンポーネント設定は次の記述されます。 ```xml ``` このケースでは、配列を分割する対応する式は ​`#[payload]`​ になります。分割式では、参照される​`ペイロード`​は、すでに JSON ファイルとして処理されている応答全体になります。一方、​`logger`​ プロセッサーで参照される​`ペイロード`​は、その実行の対応するペイロード (​`{'name': 'Mondi'}`​ のペイロードと ​`{'name': 'Viena'}`​ のペイロード) を参照します。​`splitExpression`​ 設定は次の記述されます。 ```xml ``` 次の例は、1 つのポーリングの後のフローの 2 つの同時実行 (​`Mondi`​ を使用する実行と ​`Viena`​ を使用する実行) を示しています。10 時間後、ポーリングが再度実行されます。の例では、サーバーは同じ結果を返します。 ```xml ``` ## [](#ウォーターマーク式の設定)ウォーターマーク式の設定 前の簡単な例では、サーバーは常に同じ HTTP 応答を返します。より複雑なシナリオでは、サーバーは次の応答を送信する必要があるかどうかを把握する必要があります。ヘッダー、URI パラメーター、本文、またはクエリパラメーターを送信できますが、これらのパラメーターに常に HTTP 要求と同じ値が含まれている場合、サーバーは次の応答を把握できません。 このようなポーリングシナリオでは、サーバーがペイロード全体のウォーターマーク値を返すか、そのペイロードの各項目のウォーターマーク値を個別に返すウォーターマークを実装します。たとえば、ウォーターマーク値は、コレクション全体を参照するタイムスタンプになるか、各項目のそれぞれのタイムスタンプになります。いずれの場合も、​`watermark`​ プレースホルダーを使用して、ウォーターマーク式を指定します。 式によって応答からウォーターマークが抽出され、その後にこのウォーターマークを使用して要求がサーバーに送信されます。​`watermark`​ プレースホルダーには、本文、ヘッダー、URI パラメーター、クエリパラメーター値の式を使用できます。 最初に式の ​`watermark`​ プレースホルダー値は ​`null`​ です。これは、プレースホルダーが使用されるサーバーまたは式で考慮される必要があります。 ウォーターマーク式でペイロード全体を参照するには、​`payload`​ プレースホルダーを使用します。項目を参照するには、ウォーターマーク式の各項目に個別に適用される ​`item`​ プレースホルダーを使用します。 次の XML 設定例は、HTTP ​**Listener**​ フローを示しています。最初のポーリングのやりとりでウォーターマークがない場合、​`wm`​ プロパティにウォーターマーク値が設定されたペイロードが返されます。2 番目のポーリングのやりとりでは、ウォーターマーク値が想定されるため、ペイロードが異なっています。このケースでは、要求のペイロードから取得されます。 ```xml ``` 次の XML 設定例は、ペイロード全体からウォーターマーク値を抽出し、要求の本文の値を使用する方法を示しています。この設定では、HTTP ​**Listener**​ ソースではなく HTTP ​**Polling Source**​ イベントソースを使用します。 ```xml ``` - `watermarkExpression`​ には、応答のプロパティ ​`wm`​ からウォーターマークを取得する ​`watermark`​ プレースホルダーがあります。 - 最初のポーリングのやりとりには、フローの 3 つの実行 (​`{name: 'Eze'}`​ を使用する実行、​`{name: 'Fabi'}`​ を使用する実行、​`{name: 'Sofi'}`​ を使用する実行) があります。 - 5 分後に発生する 2 番目のポーリングのやりとりには、2 つの実行 (​`{name: 'Euge'}`​ を使用する実行と ​`{name: 'Juli'}`​ を使用する実行) があります。 - 5 分後に発生する 2 番目のポーリングのやりとりには、2 つの実行 (​`{name: 'Euge'}`​ を使用する実行と ​`{name: 'Juli'}`​ を使用する実行) があります。 - その後、3 番目のやりとりでもポーリングは続行されますが、結果が空であるため、フローの実行はありません。 次の XML 設定例は、各項目からウォーターマーク値を抽出し、クエリパラメーターでその値を使用する方法を示しています。動作は、HTTP サーバーでのウォーターマーク値の使用方法に完全に連動します。 ```xml ``` ## [](#羃等性式の設定)羃等性式の設定 同じペイロード ID のフローが 2 つ同時に実行されないようにするには、HTTP ​**Polling Source**​ イベントソースの羃等性を設定します。この設定により、同じ ID のペイロードが同時に処理されなくなります。 イベントソースの羃等性を設定するには、ウォーターマーク式の設定と同様に、項目から ID を取得する ID 式を追加します。羃等性式 ​`idExpression`​ で ​`payload`​ および ​`item`​ プレースホルダーを使用します。 次の XML 設定例では、最初の 3 つの項目でフローが同時に実行され、最初の項目の処理が完了した後に 4 番目の項目のプロセスが開始されます。 ```xml ``` ## [](#応答バリデーターの設定)応答バリデーターの設定 応答バリデーターを設定して使用することで、受け取った応答を検証します。 次の XML 設定例は、応答バリデーターでデフォルトの状況コード (200 ~ 299) が想定されるときに、サーバーから常に 301 コードが返されて HTTP 応答が必ず失敗する状況を示しています。これは、フローが実行されず、応答バリデーターで状況コードとして 301 が定義されている場合にのみがペイロードが有効とみなされる (その後、分割、ウォーターマーク、羃等性設定が適用される) ことを示しています。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Request 操作の設定](https://docs.mulesoft.com/jp/http-connector/1.10/http-request-ref) - [HTTP Connector の例](https://docs.mulesoft.com/jp/http-connector/1.10/http-connector-examples) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation) # HTTP Polling ソースの設定 HTTP Connector 用 Anypoint Connector (HTTP Connector) では、指定された HTTP サーバーに対して、スケジュールされた HTTP 要求を実行する ​**Polling Source**​ イベントソースが提供されます。このソースでは、HTTP ​**Listener**​ ソースのようにユーザーからの HTTP 要求を待機しません。 HTTP ​**Polling Source**​ イベントソースでは、以下を設定できます。 - スケジュール頻度 (一定期間または Cron 式)。 - 応答の各項目がフローの異なる実行で実行されるように HTTP 応答を分割するイベントソース。 - ウォーターマークを取得する方法。 ## [](#http-request-操作とのリレーション)HTTP Request 操作とのリレーション HTTP ​**Polling Source**​ イベントソースは HTTP 要求 (HTTP ​**Request**​ 操作など) を実行するため、HTTP 要求グローバル設定 (URL、ポート、ベースパス、プロトコルの設定や、各自の実装で要求されるカスタム要求設定など) を使用してソースを設定します。 このソースは HTTP 要求を実行し、結果として得られる HTTP 応答を使用して、フローをトリガーする 1 つ以上のイベントを作成します。 次の設定例は、10 時間ごとにポーリングするポーリングソースを示しています。 ![Anypoint Studio の \[HTTP Polling source (HTTP Polling ソース)\] 設定ウィンドウ](_images/http-polling-source.png) **\[Configuration XML (設定 XML)\]**​ ビューでは、​``​、​``​、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#ポーリング頻度の設定)ポーリング頻度の設定 **\[Scheduling strategy (スケジュール戦略)\]**​ (​``​) 項目で、一定間隔または Cron 式としてスケジュール戦略を設定します。 **\[Configuration XML (設定 XML)\]**​ エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#パラメーターの設定)パラメーターの設定 HTTP ​**Polling Source**​ イベントソースでも、HTTP ​**Request**​ 操作と同じ方法で本文、ヘッダー、URI、パラメーター、クエリパラメーターを設定できます。 次の例は、値を使用して ​**\[Body (本文)\]**​ (​`polling-request-body`​)、​**\[Headers (ヘッダー)\]**​ (​`polling-request-headers`​)、​**\[URI parameters (URI パラメーター)\]**​ (​`polling-request-uri-param`​)、​**\[Query parameters (クエリパラメーター)\]**​ (​`polling-request-query-param`​) 項目を設定する方法を示しています。これには、式を追加することができます。これらの式はウォーターマークに連動できます。 **\[Configuration XML (設定 XML)\]**​ エディターでは、​`polling-request-body`​、​`polling-request-headers`​、​`polling-request-uri-param`​、​`polling-request-query-param`​ 設定は次のように記述されます。 ```xml ``` ## [](#分割式の設定)分割式の設定 HTTP ​**Polling Source**​ イベントソースが HTTP 要求を実行して HTTP 応答を取得したら、変換を実行し、その応答の各項目をフローの異なる実行で実行されるように HTTP 応答を分割できます。 たとえば、データベースからそのデータを取得するサーバーをポーリングし、そのサーバーから 50 件の結果が返されるとします。フロー間で応答を分割せず、​**For each**​ コンポーネントを使用しないで各結果を個別にフローに送信したいと考えています。応答を分割するには、​**\[Split expression (分割式)\]**​ (​`splitExpression`​) 項目を設定します。 HTTP ​**Request**​ 操作の後に参照するため、分割式では応答を​`ペイロード`​として参照します。 次の例は、項目が配列に含まれる JSON ペイロードを返すサーバーを示しています。​`set-payload`​ コンポーネント設定は次の記述されます。 ```xml ``` このケースでは、配列を分割する対応する式は ​`#[payload]`​ になります。分割式では、参照される​`ペイロード`​は、すでに JSON ファイルとして処理されている応答全体になります。一方、​`logger`​ プロセッサーで参照される​`ペイロード`​は、その実行の対応するペイロード (​`{'name': 'Mondi'}`​ のペイロードと ​`{'name': 'Viena'}`​ のペイロード) を参照します。​`splitExpression`​ 設定は次の記述されます。 ```xml ``` 次の例は、1 つのポーリングの後のフローの 2 つの同時実行 ( ​`Mondi`​ を使用する実行と ​`Viena`​ を使用する実行) を示しています。10 時間後、ポーリングが再度実行されます。の例では、サーバーは同じ結果を返します。 ```xml ``` ## [](#ウォーターマーク式の設定)ウォーターマーク式の設定 前の簡単な例では、サーバーは常に同じ HTTP 応答を返します。より複雑なシナリオでは、サーバーは次の応答を送信する必要があるかどうかを把握する必要があります。ヘッダー、URI パラメーター、本文、またはクエリパラメーターを送信できますが、これらのパラメーターに常に HTTP 要求と同じ値が含まれている場合、サーバーは次の応答を把握できません。 このようなポーリングシナリオでは、サーバーがペイロード全体のウォーターマーク値を返すか、そのペイロードの各項目のウォーターマーク値を個別に返すウォーターマークを実装します。たとえば、ウォーターマーク値は、コレクション全体を参照するタイムスタンプになるか、各項目のそれぞれのタイムスタンプになります。いずれの場合も、​`watermark`​ プレースホルダーを使用して、ウォーターマーク式を指定します。 式によって応答からウォーターマークが抽出され、その後にこのウォーターマークを使用して要求がサーバーに送信されます。​`watermark`​ プレースホルダーには、本文、ヘッダー、URI パラメーター、クエリパラメーター値の式を使用できます。 最初に式の ​`watermark`​ プレースホルダー値は ​`null`​ です。これは、プレースホルダーが使用されるサーバーまたは式で考慮される必要があります。 ウォーターマーク式でペイロード全体を参照するには、​`payload`​ プレースホルダーを使用します。項目を参照するには、ウォーターマーク式の各項目に個別に適用される ​`item`​ プレースホルダーを使用します。 次の XML 設定例は、HTTP ​**Listener**​ フローを示しています。最初のポーリングのやりとりでウォーターマークがない場合、​`wm`​ プロパティにウォーターマーク値が設定されたペイロードが返されます。2 番目のポーリングのやりとりでは、ウォーターマーク値が想定されるため、ペイロードが異なっています。このケースでは、要求のペイロードから取得されます。 ```xml ``` 次の XML 設定例は、ペイロード全体からウォーターマーク値を抽出し、要求の本文の値を使用する方法を示しています。この設定では、HTTP ​**Listener**​ ソースではなく HTTP ​**Polling Source**​ イベントソースを使用します。 ```xml ``` - `watermarkExpression`​ には、応答のプロパティ ​`wm`​ からウォーターマークを取得する ​`watermark`​ プレースホルダーがあります。 - 最初のポーリングのやりとりには、フローの 3 つの実行 (​`{name: 'Eze'}`​ を使用する実行、​`{name: 'Fabi'}`​ を使用する実行、​`{name: 'Sofi'}`​ を使用する実行) があります。 - 5 分後に発生する 2 番目のポーリングのやりとりには、2 つの実行 (​`{name: 'Euge'}`​ を使用する実行と ​`{name: 'Juli'}`​ を使用する実行) があります。 - 5 分後に発生する 2 番目のポーリングのやりとりには、2 つの実行 (​`{name: 'Euge'}`​ を使用する実行と ​`{name: 'Juli'}`​ を使用する実行) があります。 - その後、3 番目のやりとりでもポーリングは続行されますが、結果が空であるため、フローの実行はありません。 次の XML 設定例は、各項目からウォーターマーク値を抽出し、クエリパラメーターでその値を使用する方法を示しています。動作は、HTTP サーバーでのウォーターマーク値の使用方法に完全に連動します。 ```xml ``` ## [](#羃等性式の設定)羃等性式の設定 同じペイロード ID のフローが 2 つ同時に実行されないようにするには、HTTP ​**Polling Source**​ イベントソースの羃等性を設定します。この設定により、同じ ID のペイロードが同時に処理されなくなります。 イベントソースの羃等性を設定するには、ウォーターマーク式の設定と同様に、項目から ID を取得する ID 式を追加します。羃等性式 ​`idExpression`​ で ​`payload`​ および ​`item`​ プレースホルダーを使用します。 次の XML 設定例では、最初の 3 つの項目でフローが同時に実行され、最初の項目の処理が完了した後に 4 番目の項目のプロセスが開始されます。 ```xml ``` ## [](#応答バリデーターの設定)応答バリデーターの設定 応答バリデーターを設定して使用することで、受け取った応答を検証します。 次の XML 設定例は、応答バリデーターでデフォルトの状況コード (200 ~ 299) が想定されるときに、サーバーから常に 301 コードが返されて HTTP 応答が必ず失敗する状況を示しています。これは、フローが実行されず、応答バリデーターで状況コードとして 301 が定義されている場合にのみがペイロードが有効とみなされる (その後、分割、ウォーターマーク、羃等性設定が適用される) ことを示しています。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Request 操作の設定](https://docs.mulesoft.com/jp/http-connector/1.8/http-request-ref) - [HTTP Connector の例](https://docs.mulesoft.com/jp/http-connector/1.8/http-connector-examples) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation) # HTTP Polling ソースの設定 HTTP Connector 用 Anypoint Connector (HTTP Connector) では、指定された HTTP サーバーに対して、スケジュールされた HTTP 要求を実行する ​**Polling Source**​ イベントソースが提供されます。このソースでは、HTTP ​**Listener**​ ソースのようにユーザーからの HTTP 要求を待機しません。 HTTP ​**Polling Source**​ イベントソースでは、以下を設定できます。 - スケジュール頻度 (一定期間または Cron 式)。 - 応答の各項目がフローの異なる実行で実行されるように HTTP 応答を分割するイベントソース。 - ウォーターマークを取得する方法。 ## [](#http-request-操作とのリレーション)HTTP Request 操作とのリレーション HTTP ​**Polling Source**​ イベントソースは HTTP 要求 (HTTP ​**Request**​ 操作など) を実行するため、HTTP 要求グローバル設定 (URL、ポート、ベースパス、プロトコルの設定や、各自の実装で要求されるカスタム要求設定など) を使用してソースを設定します。 このソースは HTTP 要求を実行し、結果として得られる HTTP 応答を使用して、フローをトリガーする 1 つ以上のイベントを作成します。 次の設定例は、10 時間ごとにポーリングするポーリングソースを示しています。 ![Anypoint Studio の \[HTTP Polling source (HTTP Polling ソース)\] 設定ウィンドウ](_images/http-polling-source.png) **\[Configuration XML (設定 XML)\]**​ ビューでは、​``​、​``​、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#ポーリング頻度の設定)ポーリング頻度の設定 **\[Scheduling strategy (スケジュール戦略)\]**​ (​``​) 項目で、一定間隔または Cron 式としてスケジュール戦略を設定します。 **\[Configuration XML (設定 XML)\]**​ エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml ``` ## [](#パラメーターの設定)パラメーターの設定 HTTP ​**Polling Source**​ イベントソースでも、HTTP ​**Request**​ 操作と同じ方法で本文、ヘッダー、URI、パラメーター、クエリパラメーターを設定できます。 次の例は、値を使用して ​**\[Body (本文)\]**​ (​`polling-request-body`​)、​**\[Headers (ヘッダー)\]**​ (​`polling-request-headers`​)、​**\[URI parameters (URI パラメーター)\]**​ (​`polling-request-uri-param`​)、​**\[Query parameters (クエリパラメーター)\]**​ (​`polling-request-query-param`​) 項目を設定する方法を示しています。これには、式を追加することができます。これらの式はウォーターマークに連動できます。 **\[Configuration XML (設定 XML)\]**​ エディターでは、​`polling-request-body`​、​`polling-request-headers`​、​`polling-request-uri-param`​、​`polling-request-query-param`​ 設定は次のように記述されます。 ```xml ``` ## [](#分割式の設定)分割式の設定 HTTP ​**Polling Source**​ イベントソースが HTTP 要求を実行して HTTP 応答を取得したら、変換を実行し、その応答の各項目をフローの異なる実行で実行されるように HTTP 応答を分割できます。 たとえば、データベースからそのデータを取得するサーバーをポーリングし、そのサーバーから 50 件の結果が返されるとします。フロー間で応答を分割せず、​**For each**​ コンポーネントを使用しないで各結果を個別にフローに送信したいと考えています。応答を分割するには、​**\[Split expression (分割式)\]**​ (​`splitExpression`​) 項目を設定します。 HTTP ​**Request**​ 操作の後に参照するため、分割式では応答を​`ペイロード`​として参照します。 次の例は、項目が配列に含まれる JSON ペイロードを返すサーバーを示しています。​`set-payload`​ コンポーネント設定は次の記述されます。 ```xml ``` このケースでは、配列を分割する対応する式は ​`#[payload]`​ になります。分割式では、参照される​`ペイロード`​は、すでに JSON ファイルとして処理されている応答全体になります。一方、​`logger`​ プロセッサーで参照される​`ペイロード`​は、その実行の対応するペイロード (​`{'name': 'Mondi'}`​ のペイロードと ​`{'name': 'Viena'}`​ のペイロード) を参照します。​`splitExpression`​ 設定は次の記述されます。 ```xml ``` 次の例は、1 つのポーリングの後のフローの 2 つの同時実行 (​`Mondi`​ を使用する実行と ​`Viena`​ を使用する実行) を示しています。10 時間後、ポーリングが再度実行されます。の例では、サーバーは同じ結果を返します。 ```xml ``` ## [](#ウォーターマーク式の設定)ウォーターマーク式の設定 前の簡単な例では、サーバーは常に同じ HTTP 応答を返します。より複雑なシナリオでは、サーバーは次の応答を送信する必要があるかどうかを把握する必要があります。ヘッダー、URI パラメーター、本文、またはクエリパラメーターを送信できますが、これらのパラメーターに常に HTTP 要求と同じ値が含まれている場合、サーバーは次の応答を把握できません。 このようなポーリングシナリオでは、サーバーがペイロード全体のウォーターマーク値を返すか、そのペイロードの各項目のウォーターマーク値を個別に返すウォーターマークを実装します。たとえば、ウォーターマーク値は、コレクション全体を参照するタイムスタンプになるか、各項目のそれぞれのタイムスタンプになります。いずれの場合も、​`watermark`​ プレースホルダーを使用して、ウォーターマーク式を指定します。 式によって応答からウォーターマークが抽出され、その後にこのウォーターマークを使用して要求がサーバーに送信されます。​`watermark`​ プレースホルダーには、本文、ヘッダー、URI パラメーター、クエリパラメーター値の式を使用できます。 最初に式の ​`watermark`​ プレースホルダー値は ​`null`​ です。これは、プレースホルダーが使用されるサーバーまたは式で考慮される必要があります。 ウォーターマーク式でペイロード全体を参照するには、​`payload`​ プレースホルダーを使用します。項目を参照するには、ウォーターマーク式の各項目に個別に適用される ​`item`​ プレースホルダーを使用します。 次の XML 設定例は、HTTP ​**Listener**​ フローを示しています。最初のポーリングのやりとりでウォーターマークがない場合、​`wm`​ プロパティにウォーターマーク値が設定されたペイロードが返されます。2 番目のポーリングのやりとりでは、ウォーターマーク値が想定されるため、ペイロードが異なっています。このケースでは、要求のペイロードから取得されます。 ```xml ``` 次の XML 設定例は、ペイロード全体からウォーターマーク値を抽出し、要求の本文の値を使用する方法を示しています。この設定では、HTTP ​**Listener**​ ソースではなく HTTP ​**Polling Source**​ イベントソースを使用します。 ```xml ``` - `watermarkExpression`​ には、応答のプロパティ ​`wm`​ からウォーターマークを取得する ​`watermark`​ プレースホルダーがあります。 - 最初のポーリングのやりとりには、フローの 3 つの実行 (​`{name: 'Eze'}`​ を使用する実行、​`{name: 'Fabi'}`​ を使用する実行、​`{name: 'Sofi'}`​ を使用する実行) があります。 - 5 分後に発生する 2 番目のポーリングのやりとりには、2 つの実行 (​`{name: 'Euge'}`​ を使用する実行と ​`{name: 'Juli'}`​ を使用する実行) があります。 - 5 分後に発生する 2 番目のポーリングのやりとりには、2 つの実行 (​`{name: 'Euge'}`​ を使用する実行と ​`{name: 'Juli'}`​ を使用する実行) があります。 - その後、3 番目のやりとりでもポーリングは続行されますが、結果が空であるため、フローの実行はありません。 次の XML 設定例は、各項目からウォーターマーク値を抽出し、クエリパラメーターでその値を使用する方法を示しています。動作は、HTTP サーバーでのウォーターマーク値の使用方法に完全に連動します。 ```xml ``` ## [](#羃等性式の設定)羃等性式の設定 同じペイロード ID のフローが 2 つ同時に実行されないようにするには、HTTP ​**Polling Source**​ イベントソースの羃等性を設定します。この設定により、同じ ID のペイロードが同時に処理されなくなります。 イベントソースの羃等性を設定するには、ウォーターマーク式の設定と同様に、項目から ID を取得する ID 式を追加します。羃等性式 ​`idExpression`​ で ​`payload`​ および ​`item`​ プレースホルダーを使用します。 次の XML 設定例では、最初の 3 つの項目でフローが同時に実行され、最初の項目の処理が完了した後に 4 番目の項目のプロセスが開始されます。 ```xml ``` ## [](#応答バリデーターの設定)応答バリデーターの設定 応答バリデーターを設定して使用することで、受け取った応答を検証します。 次の XML 設定例は、応答バリデーターでデフォルトの状況コード (200 ~ 299) が想定されるときに、サーバーから常に 301 コードが返されて HTTP 応答が必ず失敗する状況を示しています。これは、フローが実行されず、応答バリデーターで状況コードとして 301 が定義されている場合にのみがペイロードが有効とみなされる (その後、分割、ウォーターマーク、羃等性設定が適用される) ことを示しています。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Request 操作の設定](https://docs.mulesoft.com/jp/http-connector/1.9/http-request-ref) - [HTTP Connector の例](https://docs.mulesoft.com/jp/http-connector/1.9/http-connector-examples) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation) # HTTP Request 操作の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作を使用すると、デフォルトの ​`GET`​ メソッドを使用して外部 HTTP サービスをコンシュームできます。それ以外の場合は、操作が受け入れるメソッドを選択できます。 - `GET`​ および ​`OPTIONS`​ メソッドは要求でペイロードを送信しません (HTTP リクエストボディは空です)。 - `CONNECT`​、​`DELETE`​、​`PATCH`​、​`POST`​、​`PUT`​ メソッドは、HTTP リクエストボディとしてメッセージペイロードを送信します。 HTTP ​**Request**​ 操作によって HTTP 要求が送信された後、コネクタは HTTP 応答を受信し、それを Mule アプリケーションのフローの次の要素に渡します。HTTP 応答は、さまざまな状況コードを使用して成功か失敗かを示します。また、操作によって HTTP 応答がどのように生成されるかをコネクタ操作のグローバル設定でカスタマイズすることができます。 デフォルトでは、操作は Mule メッセージペイロードを HTTP リクエストボディとして送信しますが、これは DataWeave スクリプトまたは式を使用してカスタマイズできます。リクエストボディに加えて、以下を設定できます。 - 要求および応答のサイズ制限 - ヘッダー - クエリパラメーター - URI パラメーター - 複数ヘッダーまたはパラメーターのマップ ## [](#http-要求接続を設定する)HTTP 要求接続を設定する HTTP ​**Request**​ 操作を使用するには、接続プロバイダーを使用して要求のグローバル設定をホスト URI に設定する必要があります。ホスト URI にはパスを含めることができます。さらに、受信ポートと通信プロトコルを設定できます。 - **Host (ホスト)**​ 要求が送信される場所を示します。ホスト名または IP を指定することもできます。 - **Port (ポート)**​ 要求が送信される場所を示します。 - **Protocol (プロトコル)**​ 通信のプロトコルを示します。標準接続の場合は HTTP、セキュアな TLS 接続の場合は HTTPS を使用します。 HTTPS を介したセキュアな接続を有効にするには、接続に TLS 設定コンテキストを定義し、次を指定する必要があります。 - サーバーのキーストア - トラストストア (相互認証が必要な場合) TLS 設定についての詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 さらに、​**\[Authentication (認証)\]**​ 項目を次の種別で設定できます。 - **Basic authentication (基本認証)** - **Digest authentication (ダイジェスト認証)** - **Ntlm authentication (NTLM 認証)**​ (NT LAN Manager) 認証種別と例についての詳細は、​[「HTTP 要求の認証の設定」](https://docs.mulesoft.com/jp/http-connector/1.10/http-authentication)​を参照してください。 次の例は、Studio で HTTP ​**Request**​ 接続を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Request**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[Host (ホスト)\]**​ を ​`localhost`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 ![「Host (ホスト)」 項目が localhost、「Port (ポート)」 項目が 8081 に設定された HTTP Request グローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-1.png) 1. **\[TLS configuration (TLS 設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 2. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、​**\[Path (パス)\]**​ を ​`keystore.jks`​ に、​**\[Password (パスワード)\]**​ を ​`Mypassword`​ に設定します。 ![「Path (パス)」 項目が keystore.jks、「Password (パスワード)」 項目が Mypassword に設定された 「Trust Store Configuration (トラストストア設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-2.png) 1. **\[Authentication (認証)\]**​ を ​**\[Basic authentication (基本認証)\]**​ に設定します。 2. **\[Username (ユーザー名)\]**​ を ​`testuser`​、​**\[Password (パスワード)\]**​ を ​`Mypassword`​ に設定します。 ![Basic authentication に設定された \[Authentication (認証)\] 項目、testuser に設定された \[User (ユーザー)\] 項目、Mypassword に設定された \[Password (パスワード)\] 項目](_images/http-request-3.png) 1. **\[OK\]**​ をクリックします。 2. HTTP ​**Request**​ 設定画面で、​**\[Path (パス)\]**​ を ​`/testpath`​ に設定します。 **設定 XML**​ エディターでは、​`host`​、​`port`​、​`path`​、​`trust-store`​、および ​`authentication`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#http-要求および応答のサイズ制限の設定)HTTP 要求および応答のサイズ制限の設定 デフォルトでは、HTTP 要求サイズ、応答サイズ、リクエスト/レスポンスヘッダーサイズの最大値が Mule によって定義されます。ただし、これらの値は ​`wrapper.conf`​ ファイルで次のプロパティを変更することで変更できます。
名前 プロパティ 説明 デフォルト値 (バイト)

Request Header Size (リクエストヘッダーサイズ)

mule.http.headerSectionSize

HTTP リクエストヘッダーセクション (要求行 + ヘッダー) で受け入れられる最大サイズ (バイト)

8192

Response Header Size (レスポンスヘッダーサイズ)

mule.http.client.headerSectionSize

HTTP レスポンスヘッダーセクション (要求行 + ヘッダー) で受け入れられる最大サイズ (バイト)

8192

Request Size (要求サイズ)

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size

送信する肯定応答されていない最大バイト数を保持および反映するために、未読バイト数を制御する受信バッファの最大サイズ。

1048576​ (1MB)

Response Size (応答サイズ)

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-send-buffer-size

受信側システムから肯定応答があるまで送信パッケージを制御する送信バッファの最大サイズ。

1048576​ (1MB)

`wrapper.conf`​ ファイルで次のシステムプロパティを変更して、サーバーレスポンスヘッダー、サーバーリクエストヘッダー、クライアントリクエストヘッダーの最大値を変更することもできます。
名前 プロパティ 説明 デフォルト値

Server Response Headers (サーバーレスポンスヘッダー)

mule.http.MAX_SERVER_RESPONSE_HEADERS

HTTP サーバーから送信される応答で許容されるヘッダーの最大量。

100

Server Request Headers (サーバーリクエストヘッダー)

mule.http.MAX_SERVER_REQUEST_HEADERS

HTTP サーバーから送信される要求で許容されるヘッダーの最大量。

100

Client Request Headers (クライアントリクエストヘッダー)

mule.http.MAX_CLIENT_REQUEST_HEADERS

HTTP クライアントから送信される要求で許容されるヘッダーの最大量。

100

クライアントの HTTP レスポンスヘッダーには最大量の制限がないため、Max Client Response Header のようなシステムプロパティはありません。 `wrapper.conf`​ ファイルでシステムプロパティを設定する方法についての詳細は、​[「wrapper.conf ファイルでシステムプロパティを設定する」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system#set-properties)​を参照してください。 ## [](#ヘッダーを設定する)ヘッダーを設定する ヘッダーを次の 2 つのレベルのいずれかで HTTP 要求に追加します。 - **Header (ヘッダー)**​ HTTP ​**Request**​ 操作レベル - **Default headers (デフォルトヘッダー)**​ HTTP ​**Request**​ グローバル設定レベル 要求のたびにヘッダーを指定することを避けるために、HTTP グローバル設定レベルでデフォルトヘッダーを設定します。この設定を使用すると、HTTP ​**Request**​ 操作レベルで設定したヘッダーと共にこのヘッダーがすべてのアウトバウンド要求に追加されます。 デフォルトヘッダーを含む一部のパラメーターでは式も受け入れられるため、動的値を使用できます。 次の例は、Studio で HTTP ​**Request**​ 操作レベルで ​**\[Headers (ヘッダー)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[Headers (ヘッダー)\]**​ タブを選択します。 3. プラス記号 (​**+**​) をクリックして、新しいヘッダーを追加します。 4. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"HeaderName1"`​ に変更します。 5. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"HeaderValue1"`​ に変更します。 ![HTTP Request 操作レベルのヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-4.png) **設定 XML**​ エディターでは、​`headers`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用してヘッダーを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[Headers (ヘッダー)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'HeaderName1' : 'HeaderValue1'}]`​ を追加します。 ![DataWeave 式を使用した HTTP Request 操作レベルのヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-5.png) **設定 XML**​ エディターでは、​`headers`​ 設定は次のように記述されます。 ```xml ``` 次の例は、Studio で HTTP ​**Request**​ グローバル設定レベルで ​**\[Default headers (デフォルトヘッダー)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Request**​ のすべてのインスタンスで使用できるグローバル要素を設定します。設定がすでに作成されている場合は、\[編集\] ボタンをクリックします。 3. **\[Settings (設定)\]**​ をクリックします。 4. **\[Default headers (デフォルトヘッダー)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. プラス記号 (​**+**​) をクリックして、新しいヘッダーを追加します。 6. **\[Key (キー)\]**​ を ​`x-csrf-token`​ に設定します。 7. **\[Value (値)\]**​ を ​`Fetch`​ に設定します。 ![HTTP 要求グローバル接続のデフォルトヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-6.png) 1. **\[Finish (完了)\]**​ をクリックします。 **設定 XML**​ エディターでは、​`default-headers`​ 設定は次のように記述されます。 ```xml ``` 次の例は、DataWeave 式を使用してデフォルトヘッダーを設定し、動的値を使用できるようにする方法を示しています。 1. **\[Default headers (デフォルトヘッダー)\]**​ 設定ウィンドウで。 2. **\[Value (値)\]**​ の ​**\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[Value (値)\]**​ を ​`#[vars.role]`​ に設定します。 ![HTTP 要求グローバル接続のデフォルトヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-7.png) **設定 XML**​ エディターでは、​`default-headers`​ 設定は次のように記述されます。 ```xml ``` 設定要素内で DataWeave 式を使用すると、動的設定が構成されます。Mule アプリケーションが HTTP ​**Request**​ 操作を使用するたびに、設定内のすべての式が評価され、異なる値セットごとに新しい設定インスタンスが作成および初期化されます。
HTTP Connector では、デフォルトヘッダーには値の小さい式を使用してください。そうしなければ、評価のたびに異なる値が返され、HTTP クライアントのインスタンスが複数作成されるため、貴重なリソースをコンシュームし、パフォーマンスが低下します。
そのような場合は、HTTP ​**Request**​ 操作レベルで式を使用したヘッダーを設定します。 ```xml #[{'custom-role':vars.role}] ``` ## [](#クエリパラメーターを設定する)クエリパラメーターを設定する HTTP 要求のクエリパラメーターを設定する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[Query Parameters (クエリパラメーター)\]**​ タブを選択します。 3. プラス記号 (​**+**​) をクリックして、パラメーターを要求に追加します。 4. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"Keyquery"`​ に変更します。 5. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"Valuequery"`​ に変更します。 ![「Key (キー)」 項目が Keyquery、「Value (値)」 項目が Valuequery に設定されたクエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-8.png) **設定 XML**​ エディターでは、​`query-params`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用してクエリパラメーターを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[Query Parameters (クエリパラメーター)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'Keyquery' : 'Valuequery'}]`​ を追加します。 ![DataWeave 式を使用したクエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-9.png) **設定 XML**​ エディターでは、​`query-params`​ 設定は次のように記述されます。 ```xml ``` ## [](#uri-パラメーターを設定する)URI パラメーターを設定する 要求のパスにプレースホルダー (​`/customer/{customerId}`​ など) を使用する場合は、URI パラメーターを設定します。 次の例は、Studio で ​**\[URI Parameters (URI パラメーター)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Path (パス)\]**​ を ​`/customer/{customerID}`​ に設定します。 3. **\[URI Parameters (URI パラメーター)\]**​ タブを選択します。 4. プラス記号 (​**+**​) をクリックして、新しい URI パラメーターを追加します。 5. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"customerID"`​ に変更します。 6. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"20"`​ に変更します。 ![「Key (キー)」 項目が customerID、「Value (値)」 項目が 20 に設定された URI クエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-10.png) **設定 XML**​ エディターでは、​`uri-params`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用して URI パラメーターを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[URI Parameters (URI パラメーター)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. ​**\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'customerID' : '20'}]`​ を追加します。 ![DataWeave 式を使用した URI クエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-11.png) **設定 XML**​ エディターでは、​`uri-params`​ 設定は次のように記述されます。 ```xml ``` Mule アプリケーションが実行されると、​`http://www.example.com/customer/20`​ への ​`GET`​ 要求が実行されます。 ## [](#動的パラメーターおよびヘッダーを設定する)動的パラメーターおよびヘッダーを設定する アプリケーションの設計時に HTTP 要求で何個のパラメーターやヘッダーが必要かわからない場合、DataWeave 式と変数マップを使用して動的にパラメーターまたはヘッダーを HTTP 要求に割り当てます。 ヘッダーを動的に設定するには、変数マップを作成し、DataWeave 式を使用して変数値を割り当てます。次に、その変数を使用してリクエストヘッダーをセットアップします。たとえば、​`customMap`​ という変数マップを使用して、次のヘッダーを要求にセットアップします。​`#[vars.customMap ++ {'HeaderName1' : 'HeaderValue1'}]` URI パラメーターを動的に設定するには、パラメーターのマップを返す DataWeave 式を使用します。たとえば、次の手順を実行します。 1. **\[Path (パス)\]**​ を ​`/test/{p1}/{p2}`​ に設定します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[URI Parameters (URI パラメーター)\]**​ をクリックします。 3. **\[fx\]**​ ボタンをクリックしてリテラルモードに切り替えます。 4. 次の式 ​`vars.customMap ++ {'p2': 'customer'}`​ を設定します。 5. **\[Request\]**​ 操作の前に ​**\[Set Variable\]**​ 操作を追加します。 6. **\[Name (名前)\]**​ を ​`customMap`​ に設定します。 7. **\[Value (値)\]**​ を式 ​`{'p1': 'some'}`​ に設定します。 XML は次のようになります。 ```xml ``` このフローをトリガーすると、Request 操作によって要求がパス ​`/test/some/customer`​ に送信されます。 HTTP Connector は要求ごとにパラメーターを解決し、要求で指定された順序に従って現在のメッセージのコンテキストで DataWeave 式を評価します。1 つのパラメーターが複数回定義されている場合、最新の値が使用されます。 ## [](#フォームパラメーターを送信する)フォームパラメーターを送信する `POST`​ 要求でフォームパラメーターを送信する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Method (メソッド)\]**​ を ​**POST**​ に設定します。 3. **\[Body (本文)\]**​ で、Mule メッセージのペイロードを、送信するパラメーターの名前と値を指定した ​`application/x-www-form-urlencoded`​ として作成します。次に例をし召します。 `[output application/x-www-form-urlencoded --- {'key1':'value1', 'key2':'value2'}` ![DataWeave 式を使用した本文設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-12.png) **設定 XML**​ エディターでは、​`body`​ 設定は次のように記述されます。 ```xml ``` HTTP ​**Request**​ 操作は POST 要求をホストの場所に送信します。HTTP 要求には ​`Content-Type: application/x-www-form-urlencoded`​ が含まれており、本文は ​`key1=value1&key2=value2`​ です。 ## [](#ラウンドロビン方式の要求の設定)ラウンドロビン方式の要求の設定 この HTTP ​**Request**​ 操作は、設定されたホストにラウンドロビン DNS を使用して接続します。Mule は、指定されたホストに関連付けられているすべての IP アドレスを解決し、要求をすべての返された IP 間に分散することで負荷分散を行います。 認証が必要なリソースに操作を接続するとき、要求が拒否されることを避けるために、外部サービスはサービスのホスト内の IP アドレス間でセッション情報を複製する必要があります。 セッション維持を外部リソースが管理しない場合は、サービスホスト名を ​`mule.http.disableRoundRobin`​ システムプロパティに追加します。HTTP 要求は設定されたホストに接続するときにラウンドロビン DNS を使用しません。 Mule を開始するときに次のシステムプロパティを設定してください。 `./mule -M-Dmule.http.disableRoundRobin=serverhostname.com` ## [](#応答バリデーターを設定する)応答バリデーターを設定する HTTP ​**Request**​ 操作は、HTTP 応答を受信すると応答状況コードで応答を検証します。デフォルトでは、状況コードが 400 以上であれば HTTP Connector は HTTP エラー応答をスローします。そのため、サーバーが 404 (リソースが見つかりません) や 500 (内部サーバーエラー) を返した場合、失敗となり、コネクタによってエラー処理がトリガーされます。 2 つの ASCII ピリオド文字 (​`..`​) で失敗状況コードの範囲が定義されます。つまり、​`200..399`​ のように状況コードバリデーターの範囲を設定できます。XML では次のようになります。 ```xml ``` 500 ~ 599 の値は失敗とみなされ、エラーが発生します。HTTP 応答の状況コードの値がそれ以外の場合、成功とみなされます。 HTTP ​**Request**​ 操作では、HTTP 応答受信時に次の属性が Mule メッセージに追加されます。 - `attributes.statusCode` HTTP 応答の状況を表すコード - `attributes.reasonPhrase` HTTP 応答の理由を説明する語句 HTTP 要求コール中の HTTP レスポンスボディの詳細な例は、​[「HTTP エラー応答の例」](https://docs.mulesoft.com/mule-runtime/latest/mule-error-concept#http-request-error)​を参照してください。 HTTP ​**Request**​ 操作設定で、​**\[Response validator (応答バリデーター)\]**​ 項目を次のいずれかのオプションに設定して HTTP 応答をカスタマイズできます。 - **None (なし)**​ デフォルトのバリデーターを使用します。このバリデーターは、状況コードが 400 以上の場合はエラーをスローします。 - **Expression or Bean reference (式または bean 参照)**​ DataWeave 式または bean 参照を使用して状況コードを定義します。 - **Failure status code validator (失敗状況コードバリデーター)**​ エラーをスローする失敗状況コードを定義します。 - **Success status code validator (成功状況コードバリデーター)**​ 成功を示す状況コードを定義します。 次の例は、Studio で ​**\[Response validator (応答バリデーター)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Response (応答)\]**​ タブをクリックします。 3. **\[Response validator (応答バリデーター)\]**​ を ​**\[Success status code validator (成功状況コードバリデーター)\]**​ に設定します。 4. **\[Values (値)\]**​ に、受け入れ可能な状況コードのカンマ区切りリスト (​`200,201`​ など) を追加します。 HTTP 応答で返された状況コードの値がそれ以外の場合、操作は失敗となり、エラーが発生します。 ![「Success status code validator (成功状況コードバリデーター)」 に設定された 「Response validator (応答バリデーター)」 項目](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-13.png) **設定 XML**​ エディターでは、​`response-validator`​ 設定は次のように記述されます。 ```xml ``` 応答バリデーターのグローバル要素プロパティを設定することもできます。 1. Studio で ​**\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウを開きます。 2. **\[Settings (設定)\]**​ を選択します。 3. **\[Response validator (応答バリデーター)\]**​ を ​**\[Success status code validator (成功状況コードバリデーター)\]**​ に設定します。 4. **\[Values (値)\]**​ に、受け入れ可能な状況コードのカンマ区切りリスト (​`200,201`​ など) を追加します。 HTTP 応答で返された状況コードの値がそれ以外の場合、操作は失敗となり、エラーが発生します。 5. **\[OK\]**​ をクリックします。 ## [](#対象変数を設定する)対象変数を設定する デフォルトでは、HTTP リクエストボディは受信 Mule メッセージの ​`[payload]`​ から取得され、HTTP 応答は出力 Mule メッセージの ​`[payload]`​ として送信されます。 HTTP ​**Request**​ 操作のこのデフォルトの動作は、​**\[Body (本文)\]**​ 項目セクションか、​**\[Target Variable (対象変数)\]**​ 項目の値を更新して変更できます。この値は出力データの場所をペイロード以外 (変数など) に指定します。 次の例は、Studio で ​**\[Target Variable (対象変数)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Advanced (詳細)\]**​ タブを選択します。 3. **\[Target Variable (対象変数)\]**​ を ​`testvariable`​ に設定します。 4. **\[Target Value (対象値)\]**​ を ​`testvalue`​ に設定します。 ![対象変数と対象値の設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-14.png) **設定 XML**​ エディターでは、​`target`​ および ​`targetValue`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#要求ストリーミングモードを設定する)要求ストリーミングモードを設定する HTTP Connector は、リクエストボディの管理時に送信するデータの種類を考慮します。HTTP 要求をチャンクで送信するように HTTP ​**Request**​ 操作を設定できます。デフォルトでは、ペイロード種別がストリームの場合、ストリーミングメカニズムを使用して HTTP 要求が送信されます。 この動作を制御するには、​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS**​ ペイロード種別に関係なく常にストリーミングが有効になります。 - **AUTO**​ (デフォルト) 動作はペイロード種別に応じて異なります。ペイロードがストリームの場合、ストリーミングが有効になりになります。それ以外の場合は無効になります。 - **NEVER**​ ペイロードがストリームの場合も含め、ストリーミングしません。 ストリーミングの場合、HTTP 要求には ​`Content-Length`​ ヘッダーが含まれません。要求に含まれるのは ​`Transfer-Encoding`​ ヘッダーで、本文はストリーミングが完全にコンシュームされるまでチャンクで送信されます。 次の例は、Studio で ​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. HTTP ​**Request**​ 操作設定画面で ​**\[Request (要求)\]**​ タブをクリックします。 5. **\[Request streaming mode (要求ストリーミングモード)\]**​ を ​`ALWAYS`​ に設定します。 ![「Request streaming mode (要求ストリーミングモード)」 項目が ALWAYS に設定された HTTP 要求設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-15.png) **設定 XML**​ エディターでは、​`requestStreamingMode`​ 設定は次のように記述されます。 ```xml ``` ### [](#要求ストリーミングのシステムプロパティの設定)要求ストリーミングのシステムプロパティの設定 **\[Request streaming mode (要求ストリーミングモード)\]**​ を ​`ALWAYS`​ に設定すると、Mule アプリケーションは HTTP 要求をチャンクで送信しますが、この設定は Mule アプリケーションがペイロードを内部でストリーミングすることを意味するわけではありません。HTTP ​**Request**​ 操作では、HTTP 操作を送信する前にすべてのデータがメモリに格納されている必要があります。したがって、Mule アプリケーションが非常に大きなリクエストボディを送信する必要がある場合、大量のメモリを消費することになり、メモリ不足エラーが発生する可能性があります。この問題を防ぐために、内部要求ストリーミングを有効にする ​`mule.http.requestStreaming.enable`​ システムプロパティが提供されています。 このシステムプロパティを設定すると、HTTP ​**Request**​ 操作では、すべてのデータがメモリに格納される前にリクエストボディの送信が開始されます。したがって、Mule アプリケーションは、このプロパティを設定しない場合よりもメモリを必要としません。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.requestStreaming.enable=true` このプロパティのデフォルト値は、Mule Runtime バージョンによって異なります。Mule 4.4 以前では、このプロパティはデフォルトで ​`false`​ になります。Mule 4.5 以降では、このプロパティはデフォルトで ​`true`​ になります。 また、ストリーミングメカニズムの内部バッファの ​`mule.http.requestStreaming.bufferSize`​ システムプロパティを設定することもできます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.requestStreaming.bufferSize=value` Anypoint Studio で、またはオンプレミスデプロイでシステムプロパティを設定する方法については、​[システムプロパティ](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​のドキュメントを参照してください。 ## [](#応答ストリーミングを設定する)応答ストリーミングを設定する 大きなペイロードを要求する場合、HTTP ​**Request**​ グローバル設定で ​**\[Stream response (応答のストリーミング)\]**​ 項目をオンにすることで、応答をストリーミングするように選択できます。 デフォルトでは、​**\[Stream response (応答のストリーミング)\]**​ ボックスはオフ (​`false`​) です。このボックスをオン (​`true`​) にすると、Mule がチャンクをメモリ内バッファに保存して、HTTP 応答をストリームとして管理できるようになります。​**\[Response buffer size (応答バッファサイズ)\]**​ のデフォルト値 ​`1024`​ を大きな値に再設定することもできますが、バッファの問題を回避するには、ストリーミング時に応答をコンシュームすることが重要です。 次の例は、Studio で ​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目と ​**\[Response buffer size (応答バッファサイズ)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. プラス記号 (​**+**​) をクリックして HTTP Request グローバル設定を開きます。 5. **\[Stream response (応答のストリーミング)\]**​ ボックスをオンにします。 6. **\[Response buffer size (応答バッファサイズ)\]**​ を \`100 に設定します。 ![「Stream response (応答のストリーミング)」 項目がオン、「Response buffer size (応答バッファサイズ)」 項目が 100 に設定された HTTP 要求設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-16.png) **設定 XML**​ エディターでは、​`streamResponse`​ および ​`responseBufferSize`​ の設定は次の例のように記述されます。 ```xml ``` 応答ストリーミングを有効にしていて応答がチャンクされると、HTTP サービスは内部構造を使用してデータチャンクを保存します。HTTP ​**Request**​ 操作に対する次のプロセッサーが機能するために応答全体が必要な場合、プロセッサーはこれらの内部構造を読み取らないようにブロックすることもできます。その後、サーバーがチャンクを送信せず接続をクローズしないと、これらのプロセッサーは永久にブロックされる場合もあります。この状況を回避するために、HTTP サービスはデータが読み取られるのを待機するタイムアウトを確立します。デフォルトのタイムアウト値は 20 秒です。タイムアウト値は、システムプロパティ ​`mule.http.responseStreaming.pipeReadTimeoutMillis`​ を使用して変更できます。この値を調整することはお勧めしません。 ## [](#再試行メカニズムの設定)再試行メカニズムの設定 HTTP ​**Request**​ 操作では、再試行のために再接続戦略は使用しません。再接続戦略は、​`ConnectionException`​ エラーが発生した場合に Mule SDK で接続を再確立するために使用するメカニズムです。このメカニズムは、HTTP ​**Request**​ 操作により作成された HTTP サービスへの接続には影響しません。 接続についての詳細は、​[Mule SDK の接続](https://docs.mulesoft.com/mule-sdk/latest/connections)​のドキュメントを参照してください。 HTTP Connector では、外部 HTTP サービスのコンシュームの試行回数を設定できる再試行メカニズムが使用されます。コネクタはこのメカニズムを使用して HTTP クライアントを HTTP サービスに再接続します。HTTP Connector では TCP 接続が管理されないため、このメカニズムでソケットは再接続されません。 HTTP ​**Request**​ 操作が外部 HTTP サービスのコンシュームを試行できる回数 (​_再試行回数_​) を設定するには、次のいずれかを使用できます。 - **Until Successful**​ スコープコンポーネント - HTTP ​**Request**​ 操作の組み込み再試行メカニズム ### [](#until-successful-スコープを使用して再試行メカニズムを設定する)Until Successful スコープを使用して再試行メカニズムを設定する **Until Successful**​ スコープは、スコープ内のコンポーネントが成功するか、または最大再試行回数に達するまで、内部のコンポーネントを順番に処理します。このスコープで HTTP ​**Request**​ 操作を囲むと、​**\[Max Retries (最大試行回数)\]**​ 項目と ​**\[Milliseconds Between Retries (再試行回数間のミリ秒)\]**​ 項目を設定できます。 次の例は、Studio で ​**Until Successful**​ スコープを使用して再試行メカニズムを設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Core (コア)\] > \[Until Successful\]**​ を選択します。 2. **\[Until Successful\]**​ スコープコンポーネントを Studio キャンバスにドラッグします。 3. **\[Max retries (最大再試行回数)\]**​ を ​`5`​ に設定します。 4. **\[Milliseconds Between Retries (再試行回数間のミリ秒数)\]**​ を ​`10000`​ に設定します。 5. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 6. **\[Request\]**​ を ​**\[Until Successful\]**​ スコープコンポーネントにドラッグします。 ![HTTP Request 操作を使用した Until Successful スコープ設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-request-17.png) **設定 XML**​ エディターでは、​`until-successful`​、​`maxRetries`​、および ​`millisBetweenRetries`​ の設定は次の例のように記述されます。 ```xml ``` このスコープについての詳細は、​[「Until Successful スコープ」](https://docs.mulesoft.com/mule-runtime/latest/until-successful-scope)​を参照してください。 ### [](#組み込み再試行メカニズムの設定)組み込み再試行メカニズムの設定 HTTP ​**Request**​ 操作は、​`Remotely Closed`​ 種別のエラーを受信すると、冪等性メソッド ​`PUT`​、​`DELETE`​、​`GET`​、​`HEAD`​、​`OPTIONS`​、​`TRACE`​ を失敗するまで自動的に 3 回再試行します。このメカニズムは 2 つのシステムプロパティを設定してカスタマイズできます。 - `mule.http.client.maxRetries=5` このシステムプロパティでは、HTTP ​**Request**​ 操作が失敗するまでの再試行回数を設定できます。また、システムプロパティ値を 0 に設定して、組み込みメカニズムを使用しないようにすることもできます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.client.maxRetries=5` - `mule.http.client.retryOnAllMethods=true` このシステムプロパティを使用すると、組み込みメカニズムが冪等性メソッドだけでなくすべてのメソッドに拡張されます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.client.retryOnAllMethods=true` システムプロパティを設定する方法については、​[「システムプロパティ」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​を参照してください。​`POST`​ などの非冪等性メソッドがデフォルトで再試行されない理由については、 [RFC 7230](https://tools.ietf.org/html/rfc7230#section-6.3.1)​ を参照してください。 ## [](#関連情報)関連情報 - [Mule 4 スレッドプールとアプリケーションの調整](https://docs.mulesoft.com/mule-runtime/latest/execution-engine#thread-pools-and-tuning-apps) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-documentation#HttpResponseAttributes) # HTTP Request 操作の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作を使用すると、デフォルトの ​`GET`​ メソッドを使用して外部 HTTP サービスをコンシュームできます。それ以外の場合は、操作が受け入れるメソッドを選択できます。 - `GET`​ および ​`OPTIONS`​ メソッドは要求でペイロードを送信しません (HTTP リクエストボディは空です)。 - `CONNECT`​、​`DELETE`​、​`PATCH`​、​`POST`​、​`PUT`​ メソッドは、HTTP リクエストボディとしてメッセージペイロードを送信します。 HTTP ​**Request**​ 操作によって HTTP 要求が送信された後、コネクタは HTTP 応答を受信し、それを Mule アプリケーションのフローの次の要素に渡します。HTTP 応答は、さまざまな状況コードを使用して成功か失敗かを示します。また、操作によって HTTP 応答がどのように生成されるかをコネクタ操作のグローバル設定でカスタマイズすることができます。 デフォルトでは、操作は Mule メッセージペイロードを HTTP リクエストボディとして送信しますが、これは DataWeave スクリプトまたは式を使用してカスタマイズできます。要求の本文に加えて、以下を設定できます。 - 要求および応答のサイズ制限 - ヘッダー - クエリパラメーター - URI パラメーター - 複数ヘッダーまたはパラメーターのマップ
Mule 4 では、HTTP Connector のバックエンドで処理される HTTP 要求の Server Name Indication (SNI) がサポートされます。
## [](#http-要求接続を設定する)HTTP 要求接続を設定する HTTP ​**Request**​ 操作を使用するには、接続プロバイダーを使用して要求のグローバル設定をホスト URI に設定する必要があります。ホスト URI にはパスを含めることができます。さらに、受信ポートと通信プロトコルを設定できます。 - **Host (ホスト)**​ 要求が送信される場所を示します。ホスト名または IP を指定することもできます。 - **Port (ポート)**​ 要求が送信される場所を示します。 - **Protocol (プロトコル)**​ 通信のプロトコルを示します。標準接続の場合は HTTP、セキュアな TLS 接続の場合は HTTPS を使用します。 HTTPS を介したセキュアな接続を有効にするには、接続に TLS 設定コンテキストを定義し、次を指定する必要があります。 - サーバーのキーストア - トラストストア (相互認証が必要な場合) TLS 設定についての詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 さらに、​**\[Authentication (認証)\]**​ 項目を次の種別で設定できます。 - **Basic authentication (基本認証)** - **Digest authentication (ダイジェスト認証)** - **Ntlm authentication (NTLM 認証)**​ (NT LAN Manager) 認証種別と例についての詳細は、​[「HTTP 要求の認証の設定」](https://docs.mulesoft.com/jp/http-connector/1.6/http-authentication)​を参照してください。 次の例は、Studio で HTTP ​**Request**​ 接続を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Request**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[Host (ホスト)\]**​ を ​`localhost`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 ![「Host (ホスト)」 項目が localhost、「Port (ポート)」 項目が 8081 に設定された HTTP Request グローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-1.png) 1. **\[TLS configuration (TLS 設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 2. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、​**\[Path (パス)\]**​ を ​`keystore.jks`​ に、​**\[Password (パスワード)\]**​ を ​`Mypassword`​ に設定します。 ![「Path (パス)」 項目が keystore.jks、「Password (パスワード)」 項目が Mypassword に設定された 「Trust Store Configuration (トラストストア設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-2.png) 1. **\[Authentication (認証)\]**​ を ​**\[Basic authentication (基本認証)\]**​ に設定します。 2. **\[Username (ユーザー名)\]**​ を ​`testuser`​、​**\[Password (パスワード)\]**​ を ​`Mypassword`​ に設定します。 ![Basic authentication に設定された \[Authentication (認証)\] 項目、testuser に設定された \[User (ユーザー)\] 項目、Mypassword に設定された \[Password (パスワード)\] 項目](_images/http-request-3.png) 1. **\[OK\]**​ をクリックします。 2. HTTP ​**Request**​ 設定画面で、​**\[Path (パス)\]**​ を ​`/testpath`​ に設定します。 **設定 XML**​ エディターでは、​`host`​、​`port`​、​`path`​、​`trust-store`​、および ​`authentication`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#http-要求および応答のサイズ制限の設定)HTTP 要求および応答のサイズ制限の設定 デフォルトでは、HTTP 要求サイズ、応答サイズ、リクエスト/レスポンスヘッダーサイズの最大値が Mule によって定義されます。ただし、これらの値は ​`wrapper.conf`​ ファイルで次のプロパティを変更することで変更できます。
名前 プロパティ 説明 デフォルト値 (バイト)

リクエスト/レスポンスヘッダーサイズ

mule.http.headerSectionSize

HTTP リクエストヘッダーセクション (要求行 + ヘッダー) で受け入れられる最大サイズ (バイト)

8192

要求サイズ

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size

送信する肯定応答されていない最大バイト数を保持および反映するために、未読バイト数を制御する受信バッファの最大サイズ。

1048576​ (1MB)

応答サイズ

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-send-buffer-size

受信側システムから肯定応答があるまで送信パッケージを制御する送信バッファの最大サイズ。

1048576​ (1MB)

`wrapper.conf`​ ファイルで次のシステムプロパティを変更して、サーバーレスポンスヘッダー、サーバーリクエストヘッダー、クライアントリクエストヘッダーの最大値を変更することもできます。
名前 プロパティ 説明 デフォルト値

Server Response Headers (サーバーレスポンスヘッダー)

mule.http.MAX_SERVER_RESPONSE_HEADERS

HTTP サーバーから送信される応答で許容されるヘッダーの最大量。

100

Server Request Headers (サーバーリクエストヘッダー)

mule.http.MAX_SERVER_REQUEST_HEADERS

HTTP サーバーから送信される要求で許容されるヘッダーの最大量。

100

Client Request Headers (クライアントリクエストヘッダー)

mule.http.MAX_CLIENT_REQUEST_HEADERS

HTTP クライアントから送信される要求で許容されるヘッダーの最大量。

100

クライアントの HTTP レスポンスヘッダーには最大量の制限がないため、Max Client Response Header のようなシステムプロパティはありません。 `wrapper.conf`​ ファイルでシステムプロパティを設定する方法についての詳細は、​[「wrapper.conf ファイルでシステムプロパティを設定する」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system#set-properties)​を参照してください。 ## [](#ヘッダーを設定する)ヘッダーを設定する ヘッダーを次の 2 つのレベルのいずれかで HTTP 要求に追加します。 - **Header (ヘッダー)**​ HTTP ​**Request**​ 操作レベル - **Default headers (デフォルトヘッダー)**​ HTTP ​**Request**​ グローバル設定レベル 要求のたびにヘッダーを指定することを避けるために、HTTP グローバル設定レベルでデフォルトヘッダーを設定します。この設定を使用すると、HTTP ​**Request**​ 操作レベルで設定したヘッダーと共にこのヘッダーがすべてのアウトバウンド要求に追加されます。 デフォルトヘッダーを含む一部のパラメーターでは式も受け入れられるため、動的値を使用できます。 次の例は、Studio で HTTP ​**Request**​ 操作レベルで ​**\[Headers (ヘッダー)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[Headers (ヘッダー)\]**​ タブを選択します。 3. プラス記号 (​**+**​) をクリックして、新しいヘッダーを追加します。 4. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"HeaderName1"`​ に変更します。 5. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"HeaderValue1"`​ に変更します。 ![HTTP Request 操作レベルのヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-4.png) **設定 XML**​ エディターでは、​`headers`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用してヘッダーを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[Headers (ヘッダー)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'HeaderName1' : 'HeaderValue1'}]`​ を追加します。 ![DataWeave 式を使用した HTTP Request 操作レベルのヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-5.png) **設定 XML**​ エディターでは、​`headers`​ 設定は次のように記述されます。 ```xml ``` 次の例は、Studio で HTTP ​**Request**​ グローバル設定レベルで ​**\[Default headers (デフォルトヘッダー)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Request**​ のすべてのインスタンスで使用できるグローバル要素を設定します。設定がすでに作成されている場合は、\[編集\] ボタンをクリックします。 3. **\[Settings (設定)\]**​ をクリックします。 4. **\[Default headers (デフォルトヘッダー)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. プラス記号 (​**+**​) をクリックして、新しいヘッダーを追加します。 6. **\[Key (キー)\]**​ を ​`x-csrf-token`​ に設定します。 7. **\[Value (値)\]**​ を ​`Fetch`​ に設定します。 ![HTTP 要求グローバル接続のデフォルトヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-6.png) 1. **\[Finish (完了)\]**​ をクリックします。 **設定 XML**​ エディターでは、​`default-headers`​ 設定は次のように記述されます。 ```xml ``` 次の例は、DataWeave 式を使用してデフォルトヘッダーを設定し、動的値を使用できるようにする方法を示しています。 1. ​**\[Default headers (デフォルトヘッダー)\]**​ 設定ウィンドウで 2. **\[Value (値)\]**​ の ​**\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[Value (値)\]**​ を ​`#[vars.role]`​ に設定します。 ![HTTP 要求グローバル接続のデフォルトヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-7.png) **設定 XML**​ エディターでは、​`default-headers`​ 設定は次のように記述されます。 ```xml ``` 設定要素内で DataWeave 式を使用すると、動的設定が構成されます。Mule アプリケーションが HTTP ​**Request**​ 操作を使用するたびに、設定内のすべての式が評価され、異なる値セットごとに新しい設定インスタンスが作成および初期化されます。
HTTP Connector では、デフォルトヘッダーには値の小さい式を使用してください。そうしなければ、評価のたびに異なる値が返され、HTTP クライアントのインスタンスが複数作成されるため、貴重なリソースをコンシュームし、パフォーマンスが低下します。
そのような場合は、HTTP ​**Request**​ 操作レベルで式を使用したヘッダーを設定します。 ```xml #[{'custom-role':vars.role}] ``` ## [](#クエリパラメーターを設定する)クエリパラメーターを設定する HTTP 要求のクエリパラメーターを設定する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[Query Parameters (クエリパラメーター)\]**​ タブを選択します。 3. プラス記号 (​**+**​) をクリックして、パラメーターを要求に追加します。 4. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"Keyquery"`​ に変更します。 5. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"Valuequery"`​ に変更します。 ![「Key (キー)」 項目が Keyquery、「Value (値)」 項目が Valuequery に設定されたクエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-8.png) **設定 XML**​ エディターでは、​`query-params`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用してクエリパラメーターを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[Query Parameters (クエリパラメーター)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'Keyquery' : 'Valuequery'}]`​ を追加します。 ![DataWeave 式を使用したクエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-9.png) **設定 XML**​ エディターでは、​`query-params`​ 設定は次のように記述されます。 ```xml ``` ## [](#uri-パラメーターを設定する)URI パラメーターを設定する 要求のパスにプレースホルダー (​`/customer/{customerId}`​ など) を使用する場合は、URI パラメーターを設定します。 次の例は、Studio で ​**\[URI Parameters (URI パラメーター)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Path (パス)\]**​ を ​`/customer/{customerId}`​ に設定します。 3. **\[URI Parameters (URI パラメーター)\]**​ タブを選択します。 4. プラス記号 (​**+**​) をクリックして、新しい URI パラメーターを追加します。 5. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"customerID"`​ に変更します。 6. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"20"`​ に変更します。 ![「Key (キー)」 項目が customerID、「Value (値)」 項目が 20 に設定された URI クエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-10.png) **設定 XML**​ エディターでは、​`uri-params`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用して URI パラメーターを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[URI Parameters (URI パラメーター)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. ​**\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'customerID' : '20'}]`​ を追加します。 ![DataWeave 式を使用した URI クエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-11.png) **設定 XML**​ エディターでは、​`uri-params`​ 設定は次のように記述されます。 ```xml ``` Mule アプリケーションが実行されると、​`http://www.example.com/customer/20`​ への ​`GET`​ 要求が実行されます。 ## [](#動的パラメーターおよびヘッダーを設定する)動的パラメーターおよびヘッダーを設定する アプリケーションの設計時に HTTP 要求で何個のパラメーターやヘッダーが必要かわからない場合、DataWeave 式と変数マップを使用して動的にパラメーターまたはヘッダーを HTTP 要求に割り当てます。 ヘッダーを動的に設定するには、変数マップを作成し、DataWeave 式を使用して変数値を割り当てます。次に、その変数を使用してリクエストヘッダーをセットアップします。たとえば、​`customMap`​ という変数マップを使用して、次のヘッダーを要求にセットアップします。​`#[vars.customMap ++ {'HeaderName1' : 'HeaderValue1'}]` URI パラメーターを動的に設定するには、パラメーターのマップを返す DataWeave 式を使用します。たとえば、次の手順を実行します。 1. **\[Path (パス)\]**​ を ​`/test/{p1}/{p2}`​ に設定します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[URI Parameters (URI パラメーター)\]**​ をクリックします。 3. **\[fx\]**​ ボタンをクリックしてリテラルモードに切り替えます。 4. 次の式 ​`vars.customMap ++ {'p2': 'customer'}`​ を設定します。 5. **\[Request\]**​ 操作の前に ​**\[Set Variable\]**​ 操作を追加します。 6. **\[Name (名前)\]**​ を ​`customMap`​ に設定します。 7. **\[Value (値)\]**​ を式 ​`{'p1': 'some'}`​ に設定します。 XML は次のようになります。 ```xml ``` このフローをトリガーすると、Request 操作によって要求がパス ​`/test/some/customer`​ に送信されます。 HTTP Connector は要求ごとにパラメーターを解決し、要求で指定された順序に従って現在のメッセージのコンテキストで DataWeave 式を評価します。1 つのパラメーターが複数回定義されている場合、最新の値が使用されます。 ## [](#フォームパラメーターを送信する)フォームパラメーターを送信する `POST`​ 要求でフォームパラメーターを送信する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Method (メソッド)\]**​ を ​**POST**​ に設定します。 3. **\[Body (本文)\]**​ で、Mule メッセージのペイロードを、送信するパラメーターの名前と値を指定した ​`application/x-www-form-urlencoded`​ として作成します。次に例をし召します。 `[output application/x-www-form-urlencoded --- {'key1':'value1', 'key2':'value2'}` ![DataWeave 式を使用した本文設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-12.png) **設定 XML**​ エディターでは、​`body`​ 設定は次のように記述されます。 ```xml ``` HTTP ​**Request**​ 操作は POST 要求をホストの場所に送信します。HTTP 要求には ​`Content-Type: application/x-www-form-urlencoded`​ が含まれており、本文は ​`key1=value1&key2=value2`​ です。 ## [](#ラウンドロビン方式の要求の設定)ラウンドロビン方式の要求の設定 この HTTP ​**Request**​ 操作は、設定されたホストにラウンドロビン DNS を使用して接続します。Mule は、指定されたホストに関連付けられているすべての IP アドレスを解決し、要求をすべての返された IP 間に分散することで負荷分散を行います。 認証が必要なリソースに操作を接続するとき、要求が拒否されることを避けるために、外部サービスはサービスのホスト内の IP アドレス間でセッション情報を複製する必要があります。 セッション維持を外部リソースが管理しない場合は、サービスホスト名を ​`mule.http.disableRoundRobin`​ システムプロパティに追加します。HTTP 要求は設定されたホストに接続するときにラウンドロビン DNS を使用しません。 Mule を開始するときに次のシステムプロパティを設定してください。 `./mule -M-Dmule.http.disableRoundRobin=serverhostname.com` ## [](#応答バリデーターを設定する)応答バリデーターを設定する HTTP ​**Request**​ 操作は、HTTP 応答を受信すると応答状況コードで応答を検証します。デフォルトでは、状況コードが 400 以上であれば HTTP Connector は HTTP エラー応答をスローします。そのため、サーバーが 404 (リソースが見つかりません) や 500 (内部サーバーエラー) を返した場合、失敗となり、コネクタによってエラー処理がトリガーされます。 2 つの ASCII ピリオド文字 (​`..`​) で失敗状況コードの範囲が定義されます。つまり、​`200..399`​ のように状況コード検証の範囲を設定できます。XML では次のようになります。 ```xml ``` 500 ~ 599 の値は失敗とみなされ、エラーが発生します。HTTP 応答の状況コードの値がそれ以外の場合、成功とみなされます。 HTTP ​**Request**​ 操作では、HTTP 応答受信時に次の属性が Mule メッセージに追加されます。 - `attributes.statusCode` HTTP 応答の状況を表すコード - `attributes.reasonPhrase` HTTP 応答の理由を説明する語句 HTTP 要求コール中の HTTP レスポンスボディの詳細な例は、​[「HTTP エラー応答の例」](https://docs.mulesoft.com/mule-runtime/latest/mule-error-concept#http-request-error)​を参照してください。 HTTP ​**Request**​ 操作設定で、​**\[Response validator (応答バリデーター)\]**​ 項目を次のいずれかのオプションに設定して HTTP 応答をカスタマイズできます。 - **None (なし)**​ デフォルトのバリデーターを使用します。このバリデーターは、、状況コードが 400 以上の場合はエラーをスローします。 - **Expression or Bean reference (式または bean 参照)**​ DataWeave 式または bean 参照を使用して状況コードを定義します。 - **Failure status code validator (失敗状況コード検証)**​ エラーをスローする失敗状況コードを定義します。 - **Success status code validator (成功状況コード検証)**​ 成功を示す状況コードを定義します。 次の例は、Studio で ​**\[Response validator (応答バリデーター)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Response (応答)\]**​ タブをクリックします。 3. **\[Response validator (応答バリデーター)\]**​ を ​**\[Success status code validator (成功状況コード検証)\]**​ に設定します。 4. **\[Values (値)\]**​ に、受け入れ可能な状況コードのカンマ区切りリスト (​`200,201`​ など) を追加します。 HTTP 応答で返された状況コードの値がそれ以外の場合、操作は失敗となり、エラーが発生します。 ![「Success status code validator (成功状況コード検証)」 に設定された 「Response validator (応答バリデーター)」 項目](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-13.png) **設定 XML**​ エディターでは、​`response-validator`​ 設定は次のように記述されます。 ```xml ``` ## [](#対象変数を設定する)対象変数を設定する デフォルトでは、HTTP リクエストボディは受信 Mule メッセージの ​`[payload]`​ から取得され、HTTP 応答は出力 Mule メッセージの ​`[payload]`​ として送信されます。 HTTP ​**Request**​ 操作のこのデフォルトの動作は、​**\[Body (本文)\]**​ 項目セクションか、​**\[Target Variable (対象変数)\]**​ 項目の値を更新して変更できます。この値は出力データの場所をペイロード以外 (変数など) に指定します。 次の例は、Studio で ​**\[Target Variable (対象変数)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Advanced (詳細)\]**​ タブを選択します。 3. **\[Target Variable (対象変数)\]**​ を ​`testvariable`​ に設定します。 4. **\[Target Value (対象値)\]**​ を ​`testvalue`​ に設定します。 ![対象変数と対象値の設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-14.png) **設定 XML**​ エディターでは、​`target`​ および ​`targetValue`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#要求ストリーミングモードを設定する)要求ストリーミングモードを設定する HTTP Connector は、リクエストボディの管理時に送信するデータの種類を考慮します。HTTP 要求をチャンクで送信するように HTTP ​**Request**​ 操作を設定できます。デフォルトでは、ペイロード種別がストリームの場合、ストリーミングメカニズムを使用して HTTP 要求が送信されます。 この動作を制御するには、​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS (常時)**​ ペイロード種別に関係なく常にストリーミングが有効になります。 - **AUTO (自動)**​ (デフォルト) 動作はペイロード種別に応じて異なります。ペイロードがストリームの場合、ストリーミングが有効になりになります。それ以外の場合は無効になります。 - **NEVER (なし)**​ ペイロードがストリームの場合も含め、ストリーミングしません。 ストリーミングの場合、HTTP 要求には ​`Content-Length`​ ヘッダーが含まれません。要求に含まれるのは ​`Transfer-Encoding`​ ヘッダーで、本文はストリーミングが完全にコンシュームされるまでチャンクで送信されます。 次の例は、Studio で ​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. HTTP ​**Request**​ 操作設定画面で ​**\[Request (要求)\]**​ タブをクリックします。 5. **\[Request streaming mode (要求ストリーミングモード)\]**​ を ​`ALWAYS`​ に設定します。 ![「Request streaming mode (要求ストリーミングモード)」 項目が ALWAYS に設定された HTTP 要求設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-15.png) **設定 XML**​ エディターでは、​`requestStreamingMode`​ 設定は次のように記述されます。 ```xml ``` ### [](#要求ストリーミングのシステムプロパティの設定)要求ストリーミングのシステムプロパティの設定 **\[Request streaming mode (要求ストリーミングモード)\]**​ を ​`ALWAYS`​ に設定すると、Mule アプリケーションは HTTP 要求をチャンクで送信しますが、この設定は Mule アプリケーションがペイロードを内部でストリーミングすることを意味するわけではありません。HTTP ​**Request**​ 操作では、HTTP 操作を送信する前にすべてのデータがメモリに格納されている必要があります。したがって、Mule アプリケーションが非常に大きなリクエストボディを送信する必要がある場合、大量のメモリを消費することになり、メモリ不足エラーが発生する可能性があります。この問題を防ぐために、内部要求ストリーミングを有効にする ​`mule.http.requestStreaming.enable`​ システムプロパティが提供されています。 このシステムプロパティを設定すると、HTTP ​**Request**​ 操作では、すべてのデータがメモリに格納される前にリクエストボディの送信が開始されます。したがって、Mule アプリケーションは、このプロパティを設定しない場合よりもメモリを必要としません。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.requestStreaming.enable=true` このプロパティのデフォルト値は、Mule Runtime バージョンによって異なります。Mule 4.4 以前では、このプロパティはデフォルトで ​`false`​ になります。Mule 4.5 以降では、このプロパティはデフォルトで ​`true`​ になります。 また、ストリーミングメカニズムの内部バッファの ​`mule.http.requestStreaming.bufferSize`​ システムプロパティを設定することもできます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.requestStreaming.bufferSize=value` Anypoint Studio で、またはオンプレミスデプロイでシステムプロパティを設定する方法については、​[システムプロパティ](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​のドキュメントを参照してください。 ## [](#応答ストリーミングを設定する)応答ストリーミングを設定する 大きなペイロードを要求する場合、HTTP ​**Request**​ グローバル設定で ​**\[Stream response (応答のストリーミング)\]**​ 項目をオンにすることで、応答をストリーミングするように選択できます。 デフォルトでは、​**\[Stream response (応答のストリーミング)\]**​ ボックスはオフ (​`false`​) です。このボックスをオン (​`true`​) にすると、Mule がチャンクをメモリ内バッファに保存して、HTTP 応答をストリームとして管理できるようになります。​**\[Response buffer size (応答バッファサイズ)\]**​ のデフォルト値 ​`1024`​ を大きな値に再設定することもできますが、バッファの問題を回避するには、ストリーミング時に応答をコンシュームすることが重要です。 次の例は、Studio で ​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目と ​**\[Response buffer size (応答バッファサイズ)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. プラス記号 (​**+**​) をクリックして HTTP Request グローバル設定を開きます。 5. **\[Stream response (応答のストリーミング)\]**​ ボックスをオンにします。 6. **\[Response buffer size (応答バッファサイズ)\]**​ を \`100 に設定します。 ![「Stream response (応答のストリーミング)」 項目がオン、「Response buffer size (応答バッファサイズ)」 項目が 100 に設定された HTTP 要求設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-16.png) **設定 XML**​ エディターでは、​`streamResponse`​ および ​`responseBufferSize`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#再試行メカニズムの設定)再試行メカニズムの設定 HTTP ​**Request**​ 操作では、再試行のために再接続戦略は使用しません。再接続戦略は、​`ConnectionException`​ エラーが発生した場合に Mule SDK で接続を再確立するために使用するメカニズムです。このメカニズムは、HTTP ​**Request**​ 操作により作成された HTTP サービスへの接続には影響しません。 接続についての詳細は、​[Mule SDK の接続](https://docs.mulesoft.com/mule-sdk/latest/connections)​のドキュメントを参照してください。 HTTP Connector では、外部 HTTP サービスのコンシュームの試行回数を設定できる再試行メカニズムが使用されます。コネクタはこのメカニズムを使用して HTTP クライアントを HTTP サービスに再接続します。HTTP Connector では TCP 接続が管理されないため、このメカニズムでソケットは再接続されません。 HTTP ​**Request**​ 操作が外部 HTTP サービスのコンシュームを試行できる回数 (​_再試行回数_​) を設定するには、次のいずれかを使用できます。 - **Until Successful**​ スコープコンポーネント - HTTP ​**Request**​ 操作の組み込み再試行メカニズム ### [](#until-successful-スコープを使用して再試行メカニズムを設定する)Until Successful スコープを使用して再試行メカニズムを設定する **Until Successful**​ スコープは、スコープ内のコンポーネントが成功するか、または最大再試行回数に達するまで、内部のコンポーネントを順番に処理します。このスコープで HTTP ​**Request**​ 操作を囲むと、​**\[Max Retries (最大試行回数)\]**​ 項目と ​**\[Milliseconds Between Retries (再試行回数間のミリ秒)\]**​ 項目を設定できます。 次の例は、Studio で ​**Until Successful**​ スコープを使用して再試行メカニズムを設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Core (コア)\] > \[Until Successful\]**​ を選択します。 2. **\[Until Successful\]**​ スコープコンポーネントを Studio キャンバスにドラッグします。 3. **\[Max retries (最大再試行回数)\]**​ を ​`5`​ に設定します。 4. **\[Milliseconds Between Retries (再試行回数間のミリ秒数)\]**​ を ​`10000`​ に設定します。 5. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 6. **\[Request\]**​ を ​**\[Until Successful\]**​ スコープコンポーネントにドラッグします。 ![HTTP Request 操作を使用した Until Successful スコープ設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-request-17.png) **設定 XML**​ エディターでは、​`until-successful`​、​`maxRetries`​、および ​`millisBetweenRetries`​ の設定は次の例のように記述されます。 ```xml ``` このスコープについての詳細は、​[「Until Successful スコープ」](https://docs.mulesoft.com/mule-runtime/latest/until-successful-scope)​を参照してください。 ### [](#組み込み再試行メカニズムの設定)組み込み再試行メカニズムの設定 HTTP ​**Request**​ 操作は、​`Remotely Closed`​ 種別のエラーを受信すると、冪等性メソッド ​`PUT`​、​`DELETE`​、​`GET`​、​`HEAD`​、​`OPTIONS`​、​`TRACE`​ を失敗するまで自動的に 3 回再試行します。このメカニズムは 2 つのシステムプロパティを設定してカスタマイズできます。 - `mule.http.client.maxRetries=5` このシステムプロパティでは、HTTP ​**Request**​ 操作が失敗するまでの再試行回数を設定できます。また、システムプロパティ値を 0 に設定して、組み込みメカニズムを使用しないようにすることもできます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.client.maxRetries=5` - `mule.http.client.retryOnAllMethods=true` このシステムプロパティを使用すると、組み込みメカニズムが冪等性メソッドだけでなくすべてのメソッドに拡張されます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.client.retryOnAllMethods=true` システムプロパティを設定する方法については、​[「システムプロパティ」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​を参照してください。​`POST`​ などの非冪等性メソッドがデフォルトで再試行されない理由については、 [RFC 7230](https://tools.ietf.org/html/rfc7230#section-6.3.1)​ を参照してください。 ## [](#関連情報)関連情報 - [Mule 4 スレッドプールとアプリケーションの調整](https://docs.mulesoft.com/mule-runtime/latest/execution-engine#thread-pools-and-tuning-apps) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-documentation#HttpResponseAttributes) # HTTP Request 操作の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作を使用すると、デフォルトの ​`GET`​ メソッドを使用して外部 HTTP サービスをコンシュームできます。それ以外の場合は、操作が受け入れるメソッドを選択できます。 - `GET`​ および ​`OPTIONS`​ メソッドは要求でペイロードを送信しません (HTTP リクエストボディは空です)。 - `CONNECT`​、​`DELETE`​、​`PATCH`​、​`POST`​、​`PUT`​ メソッドは、HTTP リクエストボディとしてメッセージペイロードを送信します。 HTTP ​**Request**​ 操作によって HTTP 要求が送信された後、コネクタは HTTP 応答を受信し、それを Mule アプリケーションのフローの次の要素に渡します。HTTP 応答は、さまざまな状況コードを使用して成功か失敗かを示します。また、操作によって HTTP 応答がどのように生成されるかをコネクタ操作のグローバル設定でカスタマイズすることができます。 デフォルトでは、操作は Mule メッセージペイロードを HTTP リクエストボディとして送信しますが、これは DataWeave スクリプトまたは式を使用してカスタマイズできます。リクエストボディに加えて、以下を設定できます。 - 要求および応答のサイズ制限 - ヘッダー - クエリパラメーター - URI パラメーター - 複数ヘッダーまたはパラメーターのマップ
Mule 4 では、HTTP Connector のバックエンドで処理される HTTP 要求の Server Name Indication (SNI) がサポートされます。
## [](#http-要求接続を設定する)HTTP 要求接続を設定する HTTP ​**Request**​ 操作を使用するには、接続プロバイダーを使用して要求のグローバル設定をホスト URI に設定する必要があります。ホスト URI にはパスを含めることができます。さらに、受信ポートと通信プロトコルを設定できます。 - **Host (ホスト)**​ 要求が送信される場所を示します。ホスト名または IP を指定することもできます。 - **Port (ポート)**​ 要求が送信される場所を示します。 - **Protocol (プロトコル)**​ 通信のプロトコルを示します。標準接続の場合は HTTP、セキュアな TLS 接続の場合は HTTPS を使用します。 HTTPS を介したセキュアな接続を有効にするには、接続に TLS 設定コンテキストを定義し、次を指定する必要があります。 - サーバーのキーストア - トラストストア (相互認証が必要な場合) TLS 設定についての詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 さらに、​**\[Authentication (認証)\]**​ 項目を次の種別で設定できます。 - **Basic authentication (基本認証)** - **Digest authentication (ダイジェスト認証)** - **Ntlm authentication (NTLM 認証)**​ (NT LAN Manager) 認証種別と例についての詳細は、​[「HTTP 要求の認証の設定」](https://docs.mulesoft.com/jp/http-connector/1.7/http-authentication)​を参照してください。 次の例は、Studio で HTTP ​**Request**​ 接続を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Request**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[Host (ホスト)\]**​ を ​`localhost`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 ![「Host (ホスト)」 項目が localhost、「Port (ポート)」 項目が 8081 に設定された HTTP Request グローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-1.png) 1. **\[TLS configuration (TLS 設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 2. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、​**\[Path (パス)\]**​ を ​`keystore.jks`​ に、​**\[Password (パスワード)\]**​ を ​`Mypassword`​ に設定します。 ![「Path (パス)」 項目が keystore.jks、「Password (パスワード)」 項目が Mypassword に設定された 「Trust Store Configuration (トラストストア設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-2.png) 1. **\[Authentication (認証)\]**​ を ​**\[Basic authentication (基本認証)\]**​ に設定します。 2. **\[Username (ユーザー名)\]**​ を ​`testuser`​、​**\[Password (パスワード)\]**​ を ​`Mypassword`​ に設定します。 ![Basic authentication に設定された \[Authentication (認証)\] 項目、testuser に設定された \[User (ユーザー)\] 項目、Mypassword に設定された \[Password (パスワード)\] 項目](_images/http-request-3.png) 1. **\[OK\]**​ をクリックします。 2. HTTP ​**Request**​ 設定画面で、​**\[Path (パス)\]**​ を ​`/testpath`​ に設定します。 **設定 XML**​ エディターでは、​`host`​、​`port`​、​`path`​、​`trust-store`​、および ​`authentication`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#http-要求および応答のサイズ制限の設定)HTTP 要求および応答のサイズ制限の設定 デフォルトでは、HTTP 要求サイズ、応答サイズ、リクエスト/レスポンスヘッダーサイズの最大値が Mule によって定義されます。ただし、これらの値は ​`wrapper.conf`​ ファイルで次のプロパティを変更することで変更できます。
名前 プロパティ 説明 デフォルト値 (バイト)

Request/Response Header Size (リクエスト/レスポンスヘッダーサイズ)

mule.http.headerSectionSize

HTTP リクエストヘッダーセクション (要求行 + ヘッダー) で受け入れられる最大サイズ (バイト)

8192

Request Size (要求サイズ)

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size

送信する肯定応答されていない最大バイト数を保持および反映するために、未読バイト数を制御する受信バッファの最大サイズ。

1048576​ (1MB)

Response Size (応答サイズ)

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-send-buffer-size

受信側システムから肯定応答があるまで送信パッケージを制御する送信バッファの最大サイズ。

1048576​ (1MB)

`wrapper.conf`​ ファイルで次のシステムプロパティを変更して、サーバーレスポンスヘッダー、サーバーリクエストヘッダー、クライアントリクエストヘッダーの最大値を変更することもできます。
名前 プロパティ 説明 デフォルト値

Server Response Headers (サーバーレスポンスヘッダー)

mule.http.MAX_SERVER_RESPONSE_HEADERS

HTTP サーバーから送信される応答で許容されるヘッダーの最大量。

100

Server Request Headers (サーバーリクエストヘッダー)

mule.http.MAX_SERVER_REQUEST_HEADERS

HTTP サーバーから送信される要求で許容されるヘッダーの最大量。

100

Client Request Headers (クライアントリクエストヘッダー)

mule.http.MAX_CLIENT_REQUEST_HEADERS

HTTP クライアントから送信される要求で許容されるヘッダーの最大量。

100

クライアントの HTTP レスポンスヘッダーには最大量の制限がないため、Max Client Response Header のようなシステムプロパティはありません。 `wrapper.conf`​ ファイルでシステムプロパティを設定する方法についての詳細は、​[「wrapper.conf ファイルでシステムプロパティを設定する」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system#set-properties)​を参照してください。 ## [](#ヘッダーを設定する)ヘッダーを設定する ヘッダーを次の 2 つのレベルのいずれかで HTTP 要求に追加します。 - **Header (ヘッダー)**​ HTTP ​**Request**​ 操作レベル - **Default headers (デフォルトヘッダー)**​ HTTP ​**Request**​ グローバル設定レベル 要求のたびにヘッダーを指定することを避けるために、HTTP グローバル設定レベルでデフォルトヘッダーを設定します。この設定を使用すると、HTTP ​**Request**​ 操作レベルで設定したヘッダーと共にこのヘッダーがすべてのアウトバウンド要求に追加されます。 デフォルトヘッダーを含む一部のパラメーターでは式も受け入れられるため、動的値を使用できます。 次の例は、Studio で HTTP ​**Request**​ 操作レベルで ​**\[Headers (ヘッダー)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[Headers (ヘッダー)\]**​ タブを選択します。 3. プラス記号 (​**+**​) をクリックして、新しいヘッダーを追加します。 4. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"HeaderName1"`​ に変更します。 5. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"HeaderValue1"`​ に変更します。 ![HTTP Request 操作レベルのヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-4.png) **設定 XML**​ エディターでは、​`headers`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用してヘッダーを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[Headers (ヘッダー)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`{'HeaderName1' : 'HeaderValue1'}`​ を追加します。 ![DataWeave 式を使用した HTTP Request 操作レベルのヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-5.png) **設定 XML**​ エディターでは、​`headers`​ 設定は次のように記述されます。 ```xml ``` 次の例は、Studio で HTTP ​**Request**​ グローバル設定レベルで ​**\[Default headers (デフォルトヘッダー)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Request**​ のすべてのインスタンスで使用できるグローバル要素を設定します。設定がすでに作成されている場合は、\[編集\] ボタンをクリックします。 3. **\[Settings (設定)\]**​ をクリックします。 4. **\[Default headers (デフォルトヘッダー)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. プラス記号 (​**+**​) をクリックして、新しいヘッダーを追加します。 6. **\[Key (キー)\]**​ を ​`x-csrf-token`​ に設定します。 7. **\[Value (値)\]**​ を ​`Fetch`​ に設定します。 ![HTTP 要求グローバル接続のデフォルトヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-6.png) 1. **\[Finish (完了)\]**​ をクリックします。 **設定 XML**​ エディターでは、​`default-headers`​ 設定は次のように記述されます。 ```xml ``` 次の例は、DataWeave 式を使用してデフォルトヘッダーを設定し、動的値を使用できるようにする方法を示しています。 1. ​**\[Default headers (デフォルトヘッダー)\]**​ 設定ウィンドウで 2. **\[Value (値)\]**​ の ​**\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[Value (値)\]**​ を ​`#[vars.role]`​ に設定します。 ![HTTP 要求グローバル接続のデフォルトヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-7.png) **設定 XML**​ エディターでは、​`default-headers`​ 設定は次のように記述されます。 ```xml ``` 設定要素内で DataWeave 式を使用すると、動的設定が構成されます。Mule アプリケーションが HTTP ​**Request**​ 操作を使用するたびに、設定内のすべての式が評価され、異なる値セットごとに新しい設定インスタンスが作成および初期化されます。
HTTP Connector では、デフォルトヘッダーには値の小さい式を使用してください。そうしなければ、評価のたびに異なる値が返され、HTTP クライアントのインスタンスが複数作成されるため、貴重なリソースをコンシュームし、パフォーマンスが低下します。
そのような場合は、HTTP ​**Request**​ 操作レベルで式を使用したヘッダーを設定します。 ```xml #[{'custom-role':vars.role}] ``` ## [](#クエリパラメーターを設定する)クエリパラメーターを設定する HTTP 要求のクエリパラメーターを設定する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[Query Parameters (クエリパラメーター)\]**​ タブを選択します。 3. プラス記号 (​**+**​) をクリックして、パラメーターを要求に追加します。 4. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"Keyquery"`​ に変更します。 5. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"Valuequery"`​ に変更します。 ![「Key (キー)」 項目が Keyquery、「Value (値)」 項目が Valuequery に設定されたクエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-8.png) **設定 XML**​ エディターでは、​`query-params`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用してクエリパラメーターを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[Query Parameters (クエリパラメーター)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`{'Keyquery' : 'Valuequery'}`​ を追加します。 ![DataWeave 式を使用したクエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-9.png) **設定 XML**​ エディターでは、​`query-params`​ 設定は次のように記述されます。 ```xml ``` ## [](#uri-パラメーターを設定する)URI パラメーターを設定する 要求のパスにプレースホルダー (​`/customer/{customerId}`​ など) を使用する場合は、URI パラメーターを設定します。 次の例は、Studio で ​**\[URI Parameters (URI パラメーター)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Path (パス)\]**​ を ​`/customer/{customerID}`​ に設定します。 3. **\[URI Parameters (URI パラメーター)\]**​ タブを選択します。 4. プラス記号 (​**+**​) をクリックして、新しい URI パラメーターを追加します。 5. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"customerID"`​ に変更します。 6. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"20"`​ に変更します。 ![「Key (キー)」 項目が customerID、「Value (値)」 項目が 20 に設定された URI クエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-10.png) **設定 XML**​ エディターでは、​`uri-params`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用して URI パラメーターを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[URI Parameters (URI パラメーター)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. ​**\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`{'customerID' : '20'}`​ を追加します。 ![DataWeave 式を使用した URI クエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-11.png) **設定 XML**​ エディターでは、​`uri-params`​ 設定は次のように記述されます。 ```xml ``` Mule アプリケーションが実行されると、​`http://www.example.com/customer/20`​ への ​`GET`​ 要求が実行されます。 ## [](#動的パラメーターおよびヘッダーを設定する)動的パラメーターおよびヘッダーを設定する アプリケーションの設計時に HTTP 要求で何個のパラメーターやヘッダーが必要かわからない場合、DataWeave 式と変数マップを使用して動的にパラメーターまたはヘッダーを HTTP 要求に割り当てます。 ヘッダーを動的に設定するには、変数マップを作成し、DataWeave 式を使用して変数値を割り当てます。次に、その変数を使用してリクエストヘッダーをセットアップします。たとえば、​`customMap`​ という変数マップを使用して、次のヘッダーを要求にセットアップします。​`#[vars.customMap ++ {'HeaderName1' : 'HeaderValue1'}]` URI パラメーターを動的に設定するには、パラメーターのマップを返す DataWeave 式を使用します。たとえば、次の手順を実行します。 1. **\[Path (パス)\]**​ を ​`/test/{p1}/{p2}`​ に設定します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[URI Parameters (URI パラメーター)\]**​ をクリックします。 3. **\[fx\]**​ ボタンをクリックしてリテラルモードに切り替えます。 4. 次の式 ​`vars.customMap ++ {'p2': 'customer'}`​ を設定します。 5. **\[Request\]**​ 操作の前に ​**\[Set Variable\]**​ 操作を追加します。 6. **\[Name (名前)\]**​ を ​`customMap`​ に設定します。 7. **\[Value (値)\]**​ を式 ​`{'p1': 'some'}`​ に設定します。 XML は次のようになります。 ```xml ``` このフローをトリガーすると、Request 操作によって要求がパス ​`/test/some/customer`​ に送信されます。 HTTP Connector は要求ごとにパラメーターを解決し、要求で指定された順序に従って現在のメッセージのコンテキストで DataWeave 式を評価します。1 つのパラメーターが複数回定義されている場合、最新の値が使用されます。 ## [](#フォームパラメーターを送信する)フォームパラメーターを送信する `POST`​ 要求でフォームパラメーターを送信する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Method (メソッド)\]**​ を ​**POST**​ に設定します。 3. **\[Body (本文)\]**​ で、Mule メッセージのペイロードを、送信するパラメーターの名前と値を指定した ​`application/x-www-form-urlencoded`​ として作成します。次に例をし召します。 `[output application/x-www-form-urlencoded --- {'key1':'value1', 'key2':'value2'}` ![DataWeave 式を使用した本文設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-12.png) **設定 XML**​ エディターでは、​`body`​ 設定は次のように記述されます。 ```xml ``` HTTP ​**Request**​ 操作は POST 要求をホストの場所に送信します。HTTP 要求には ​`Content-Type: application/x-www-form-urlencoded`​ が含まれており、本文は ​`key1=value1&key2=value2`​ です。 ## [](#ラウンドロビン方式の要求の設定)ラウンドロビン方式の要求の設定 この HTTP ​**Request**​ 操作は、設定されたホストにラウンドロビン DNS を使用して接続します。Mule は、指定されたホストに関連付けられているすべての IP アドレスを解決し、要求をすべての返された IP 間に分散することで負荷分散を行います。 認証が必要なリソースに操作を接続するとき、要求が拒否されることを避けるために、外部サービスはサービスのホスト内の IP アドレス間でセッション情報を複製する必要があります。 セッション維持を外部リソースが管理しない場合は、サービスホスト名を ​`mule.http.disableRoundRobin`​ システムプロパティに追加します。HTTP 要求は設定されたホストに接続するときにラウンドロビン DNS を使用しません。 Mule を開始するときに次のシステムプロパティを設定してください。 `./mule -M-Dmule.http.disableRoundRobin=serverhostname.com` ## [](#応答バリデーターを設定する)応答バリデーターを設定する HTTP ​**Request**​ 操作は、HTTP 応答を受信すると応答状況コードで応答を検証します。デフォルトでは、状況コードが 400 以上であれば HTTP Connector は HTTP エラー応答をスローします。そのため、サーバーが 404 (リソースが見つかりません) や 500 (内部サーバーエラー) を返した場合、失敗となり、コネクタによってエラー処理がトリガーされます。 2 つの ASCII ピリオド文字 (​`..`​) で失敗状況コードの範囲が定義されます。つまり、​`200..399`​ のように状況コードバリデーターの範囲を設定できます。XML では次のようになります。 ```xml ``` 500 ~ 599 の値は失敗とみなされ、エラーが発生します。HTTP 応答の状況コードの値がそれ以外の場合、成功とみなされます。 HTTP ​**Request**​ 操作では、HTTP 応答受信時に次の属性が Mule メッセージに追加されます。 - `attributes.statusCode` HTTP 応答の状況を表すコード - `attributes.reasonPhrase` HTTP 応答の理由を説明する語句 HTTP 要求コール中の HTTP レスポンスボディの詳細な例は、​[「HTTP エラー応答の例」](https://docs.mulesoft.com/mule-runtime/latest/mule-error-concept#http-request-error)​を参照してください。 HTTP ​**Request**​ 操作設定で、​**\[Response validator (応答バリデーター)\]**​ 項目を次のいずれかのオプションに設定して HTTP 応答をカスタマイズできます。 - **None (なし)**​ デフォルトのバリデーターを使用します。このバリデーターは、状況コードが 400 以上の場合はエラーをスローします。 - **Expression or Bean reference (式または bean 参照)**​ DataWeave 式または bean 参照を使用して状況コードを定義します。 - **Failure status code validator (失敗状況コードバリデーター)**​ エラーをスローする失敗状況コードを定義します。 - **Success status code validator (成功状況コードバリデーター)**​ 成功を示す状況コードを定義します。 次の例は、Studio で ​**\[Response validator (応答バリデーター)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Response (応答)\]**​ タブをクリックします。 3. **\[Response validator (応答バリデーター)\]**​ を ​**\[Success status code validator (成功状況コードバリデーター)\]**​ に設定します。 4. **\[Values (値)\]**​ に、受け入れ可能な状況コードのカンマ区切りリスト (​`200,201`​ など) を追加します。 HTTP 応答で返された状況コードの値がそれ以外の場合、操作は失敗となり、エラーが発生します。 ![「Success status code validator (成功状況コードバリデーター)」 に設定された 「Response validator (応答バリデーター)」 項目](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-13.png) **設定 XML**​ エディターでは、​`response-validator`​ 設定は次のように記述されます。 ```xml ``` ## [](#対象変数を設定する)対象変数を設定する デフォルトでは、HTTP リクエストボディは受信 Mule メッセージの ​`[payload]`​ から取得され、HTTP 応答は出力 Mule メッセージの ​`[payload]`​ として送信されます。 HTTP ​**Request**​ 操作のこのデフォルトの動作は、​**\[Body (本文)\]**​ 項目セクションか、​**\[Target Variable (対象変数)\]**​ 項目の値を更新して変更できます。この値は出力データの場所をペイロード以外 (変数など) に指定します。 次の例は、Studio で ​**\[Target Variable (対象変数)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Advanced (詳細)\]**​ タブを選択します。 3. **\[Target Variable (対象変数)\]**​ を ​`testvariable`​ に設定します。 4. **\[Target Value (対象値)\]**​ を ​`testvalue`​ に設定します。 ![対象変数と対象値の設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-14.png) **設定 XML**​ エディターでは、​`target`​ および ​`targetValue`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#要求ストリーミングモードを設定する)要求ストリーミングモードを設定する HTTP Connector は、リクエストボディの管理時に送信するデータの種類を考慮します。HTTP 要求をチャンクで送信するように HTTP ​**Request**​ 操作を設定できます。デフォルトでは、ペイロード種別がストリームの場合、ストリーミングメカニズムを使用して HTTP 要求が送信されます。 この動作を制御するには、​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS**​ ペイロード種別に関係なく常にストリーミングが有効になります。 - **AUTO**​ (デフォルト) 動作はペイロード種別に応じて異なります。ペイロードがストリームの場合、ストリーミングが有効になりになります。それ以外の場合は無効になります。 - **NEVER**​ ペイロードがストリームの場合も含め、ストリーミングしません。 ストリーミングの場合、HTTP 要求には ​`Content-Length`​ ヘッダーが含まれません。要求に含まれるのは ​`Transfer-Encoding`​ ヘッダーで、本文はストリーミングが完全にコンシュームされるまでチャンクで送信されます。 次の例は、Studio で ​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. HTTP ​**Request**​ 操作設定画面で ​**\[Request (要求)\]**​ タブをクリックします。 5. **\[Request streaming mode (要求ストリーミングモード)\]**​ を ​`ALWAYS`​ に設定します。 ![「Request streaming mode (要求ストリーミングモード)」 項目が ALWAYS に設定された HTTP 要求設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-15.png) **設定 XML**​ エディターでは、​`requestStreamingMode`​ 設定は次のように記述されます。 ```xml ``` ### [](#要求ストリーミングのシステムプロパティの設定)要求ストリーミングのシステムプロパティの設定 **\[Request streaming mode (要求ストリーミングモード)\]**​ を ​`ALWAYS`​ に設定すると、Mule アプリケーションは HTTP 要求をチャンクで送信しますが、この設定は Mule アプリケーションがペイロードを内部でストリーミングすることを意味するわけではありません。HTTP ​**Request**​ 操作では、HTTP 操作を送信する前にすべてのデータがメモリに格納されている必要があります。したがって、Mule アプリケーションが非常に大きなリクエストボディを送信する必要がある場合、大量のメモリを消費することになり、メモリ不足エラーが発生する可能性があります。この問題を防ぐために、内部要求ストリーミングを有効にする ​`mule.http.requestStreaming.enable`​ システムプロパティが提供されています。 このシステムプロパティを設定すると、HTTP ​**Request**​ 操作では、すべてのデータがメモリに格納される前にリクエストボディの送信が開始されます。したがって、Mule アプリケーションは、このプロパティを設定しない場合よりもメモリを必要としません。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.requestStreaming.enable=true` このプロパティのデフォルト値は、Mule Runtime バージョンによって異なります。Mule 4.4 以前では、このプロパティはデフォルトで ​`false`​ になります。Mule 4.5 以降では、このプロパティはデフォルトで ​`true`​ になります。 また、ストリーミングメカニズムの内部バッファの ​`mule.http.requestStreaming.bufferSize`​ システムプロパティを設定することもできます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.requestStreaming.bufferSize=value` Anypoint Studio で、またはオンプレミスデプロイでシステムプロパティを設定する方法については、​[システムプロパティ](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​のドキュメントを参照してください。 ## [](#応答ストリーミングを設定する)応答ストリーミングを設定する 大きなペイロードを要求する場合、HTTP ​**Request**​ グローバル設定で ​**\[Stream response (応答のストリーミング)\]**​ 項目をオンにすることで、応答をストリーミングするように選択できます。 デフォルトでは、​**\[Stream response (応答のストリーミング)\]**​ ボックスはオフ (​`false`​) です。このボックスをオン (​`true`​) にすると、Mule がチャンクをメモリ内バッファに保存して、HTTP 応答をストリームとして管理できるようになります。​**\[Response buffer size (応答バッファサイズ)\]**​ のデフォルト値 ​`1024`​ を大きな値に再設定することもできますが、バッファの問題を回避するには、ストリーミング時に応答をコンシュームすることが重要です。 次の例は、Studio で ​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目と ​**\[Response buffer size (応答バッファサイズ)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. プラス記号 (​**+**​) をクリックして HTTP Request グローバル設定を開きます。 5. **\[Stream response (応答のストリーミング)\]**​ ボックスをオンにします。 6. **\[Response buffer size (応答バッファサイズ)\]**​ を \`100 に設定します。 ![「Stream response (応答のストリーミング)」 項目がオン、「Response buffer size (応答バッファサイズ)」 項目が 100 に設定された HTTP 要求設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-16.png) **設定 XML**​ エディターでは、​`streamResponse`​ および ​`responseBufferSize`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#再試行メカニズムの設定)再試行メカニズムの設定 HTTP ​**Request**​ 操作では、再試行のために再接続戦略は使用しません。再接続戦略は、​`ConnectionException`​ エラーが発生した場合に Mule SDK で接続を再確立するために使用するメカニズムです。このメカニズムは、HTTP ​**Request**​ 操作により作成された HTTP サービスへの接続には影響しません。 接続についての詳細は、​[Mule SDK の接続](https://docs.mulesoft.com/mule-sdk/latest/connections)​のドキュメントを参照してください。 HTTP Connector では、外部 HTTP サービスのコンシュームの試行回数を設定できる再試行メカニズムが使用されます。コネクタはこのメカニズムを使用して HTTP クライアントを HTTP サービスに再接続します。HTTP Connector では TCP 接続が管理されないため、このメカニズムでソケットは再接続されません。 HTTP ​**Request**​ 操作が外部 HTTP サービスのコンシュームを試行できる回数 (​_再試行回数_​) を設定するには、次のいずれかを使用できます。 - **Until Successful**​ スコープコンポーネント - HTTP ​**Request**​ 操作の組み込み再試行メカニズム ### [](#until-successful-スコープを使用して再試行メカニズムを設定する)Until Successful スコープを使用して再試行メカニズムを設定する **Until Successful**​ スコープは、スコープ内のコンポーネントが成功するか、または最大再試行回数に達するまで、内部のコンポーネントを順番に処理します。このスコープで HTTP ​**Request**​ 操作を囲むと、​**\[Max Retries (最大試行回数)\]**​ 項目と ​**\[Milliseconds Between Retries (再試行回数間のミリ秒)\]**​ 項目を設定できます。 次の例は、Studio で ​**Until Successful**​ スコープを使用して再試行メカニズムを設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Core (コア)\] > \[Until Successful\]**​ を選択します。 2. **\[Until Successful\]**​ スコープコンポーネントを Studio キャンバスにドラッグします。 3. **\[Max retries (最大再試行回数)\]**​ を ​`5`​ に設定します。 4. **\[Milliseconds Between Retries (再試行回数間のミリ秒数)\]**​ を ​`10000`​ に設定します。 5. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 6. **\[Request\]**​ を ​**\[Until Successful\]**​ スコープコンポーネントにドラッグします。 ![HTTP Request 操作を使用した Until Successful スコープ設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-request-17.png) **設定 XML**​ エディターでは、​`until-successful`​、​`maxRetries`​、および ​`millisBetweenRetries`​ の設定は次の例のように記述されます。 ```xml ``` このスコープについての詳細は、​[「Until Successful スコープ」](https://docs.mulesoft.com/mule-runtime/latest/until-successful-scope)​を参照してください。 ### [](#組み込み再試行メカニズムの設定)組み込み再試行メカニズムの設定 HTTP ​**Request**​ 操作は、​`Remotely Closed`​ 種別のエラーを受信すると、冪等性メソッド ​`PUT`​、​`DELETE`​、​`GET`​、​`HEAD`​、​`OPTIONS`​、​`TRACE`​ を失敗するまで自動的に 3 回再試行します。このメカニズムは 2 つのシステムプロパティを設定してカスタマイズできます。 - `mule.http.client.maxRetries=5` このシステムプロパティでは、HTTP ​**Request**​ 操作が失敗するまでの再試行回数を設定できます。また、システムプロパティ値を 0 に設定して、組み込みメカニズムを使用しないようにすることもできます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.client.maxRetries=5` - `mule.http.client.retryOnAllMethods=true` このシステムプロパティを使用すると、組み込みメカニズムが冪等性メソッドだけでなくすべてのメソッドに拡張されます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.client.retryOnAllMethods=true` システムプロパティを設定する方法については、​[「システムプロパティ」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​を参照してください。​`POST`​ などの非冪等性メソッドがデフォルトで再試行されない理由については、 [RFC 7230](https://tools.ietf.org/html/rfc7230#section-6.3.1)​ を参照してください。 ## [](#関連情報)関連情報 - [Mule 4 スレッドプールとアプリケーションの調整](https://docs.mulesoft.com/mule-runtime/latest/execution-engine#thread-pools-and-tuning-apps) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-documentation#HttpResponseAttributes) # HTTP Request 操作の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作を使用すると、デフォルトの ​`GET`​ メソッドを使用して外部 HTTP サービスをコンシュームできます。それ以外の場合は、操作が受け入れるメソッドを選択できます。 - `GET`​ および ​`OPTIONS`​ メソッドは要求でペイロードを送信しません (HTTP リクエストボディは空です)。 - `CONNECT`​、​`DELETE`​、​`PATCH`​、​`POST`​、​`PUT`​ メソッドは、HTTP リクエストボディとしてメッセージペイロードを送信します。 HTTP ​**Request**​ 操作によって HTTP 要求が送信された後、コネクタは HTTP 応答を受信し、それを Mule アプリケーションのフローの次の要素に渡します。HTTP 応答は、さまざまな状況コードを使用して成功か失敗かを示します。また、操作によって HTTP 応答がどのように生成されるかをコネクタ操作のグローバル設定でカスタマイズすることができます。 デフォルトでは、操作は Mule メッセージペイロードを HTTP リクエストボディとして送信しますが、これは DataWeave スクリプトまたは式を使用してカスタマイズできます。要求の本文に加えて、以下を設定できます。 - 要求および応答のサイズ制限 - ヘッダー - クエリパラメーター - URI パラメーター - 複数ヘッダーまたはパラメーターのマップ ## [](#http-要求接続を設定する)HTTP 要求接続を設定する HTTP ​**Request**​ 操作を使用するには、接続プロバイダーを使用して要求のグローバル設定をホスト URI に設定する必要があります。ホスト URI にはパスを含めることができます。さらに、受信ポートと通信プロトコルを設定できます。 - **Host (ホスト)**​ 要求が送信される場所を示します。ホスト名または IP を指定することもできます。 - **Port (ポート)**​ 要求が送信される場所を示します。 - **Protocol (プロトコル)**​ 通信のプロトコルを示します。標準接続の場合は HTTP、セキュアな TLS 接続の場合は HTTPS を使用します。 HTTPS を介したセキュアな接続を有効にするには、接続に TLS 設定コンテキストを定義し、次を指定する必要があります。 - サーバーのキーストア - トラストストア (相互認証が必要な場合) TLS 設定についての詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 さらに、​**\[Authentication (認証)\]**​ 項目を次の種別で設定できます。 - **Basic authentication (基本認証)** - **Digest authentication (ダイジェスト認証)** - **Ntlm authentication (NTLM 認証)**​ (NT LAN Manager) 認証種別と例についての詳細は、​[「HTTP 要求の認証の設定」](https://docs.mulesoft.com/jp/http-connector/1.8/http-authentication)​を参照してください。 次の例は、Studio で HTTP ​**Request**​ 接続を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Request**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[Host (ホスト)\]**​ を ​`localhost`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 ![「Host (ホスト)」 項目が localhost、「Port (ポート)」 項目が 8081 に設定された HTTP Request グローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-1.png) 1. **\[TLS configuration (TLS 設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 2. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、​**\[Path (パス)\]**​ を ​`keystore.jks`​ に、​**\[Password (パスワード)\]**​ を ​`Mypassword`​ に設定します。 ![「Path (パス)」 項目が keystore.jks、「Password (パスワード)」 項目が Mypassword に設定された 「Trust Store Configuration (トラストストア設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-2.png) 1. **\[Authentication (認証)\]**​ を ​**\[Basic authentication (基本認証)\]**​ に設定します。 2. **\[Username (ユーザー名)\]**​ を ​`testuser`​、​**\[Password (パスワード)\]**​ を ​`Mypassword`​ に設定します。 ![Basic authentication に設定された \[Authentication (認証)\] 項目、testuser に設定された \[User (ユーザー)\] 項目、Mypassword に設定された \[Password (パスワード)\] 項目](_images/http-request-3.png) 1. **\[OK\]**​ をクリックします。 2. HTTP ​**Request**​ 設定画面で、​**\[Path (パス)\]**​ を ​`/testpath`​ に設定します。 **設定 XML**​ エディターでは、​`host`​、​`port`​、​`path`​、​`trust-store`​、および ​`authentication`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#http-要求および応答のサイズ制限の設定)HTTP 要求および応答のサイズ制限の設定 デフォルトでは、HTTP 要求サイズ、応答サイズ、リクエスト/レスポンスヘッダーサイズの最大値が Mule によって定義されます。ただし、これらの値は ​`wrapper.conf`​ ファイルで次のプロパティを変更することで変更できます。
名前 プロパティ 説明 デフォルト値 (バイト)

リクエスト/レスポンスヘッダーサイズ

mule.http.headerSectionSize

HTTP リクエストヘッダーセクション (要求行 + ヘッダー) で受け入れられる最大サイズ (バイト)

8192

要求サイズ

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size

送信する肯定応答されていない最大バイト数を保持および反映するために、未読バイト数を制御する受信バッファの最大サイズ。

1048576​ (1MB)

応答サイズ

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-send-buffer-size

受信側システムから肯定応答があるまで送信パッケージを制御する送信バッファの最大サイズ。

1048576​ (1MB)

`wrapper.conf`​ ファイルで次のシステムプロパティを変更して、サーバーレスポンスヘッダー、サーバーリクエストヘッダー、クライアントリクエストヘッダーの最大値を変更することもできます。
名前 プロパティ 説明 デフォルト値

Server Response Headers (サーバーレスポンスヘッダー)

mule.http.MAX_SERVER_RESPONSE_HEADERS

HTTP サーバーから送信される応答で許容されるヘッダーの最大量。

100

Server Request Headers (サーバーリクエストヘッダー)

mule.http.MAX_SERVER_REQUEST_HEADERS

HTTP サーバーから送信される要求で許容されるヘッダーの最大量。

100

Client Request Headers (クライアントリクエストヘッダー)

mule.http.MAX_CLIENT_REQUEST_HEADERS

HTTP クライアントから送信される要求で許容されるヘッダーの最大量。

100

クライアントの HTTP レスポンスヘッダーには最大量の制限がないため、Max Client Response Header のようなシステムプロパティはありません。 `wrapper.conf`​ ファイルでシステムプロパティを設定する方法についての詳細は、​[「wrapper.conf ファイルでシステムプロパティを設定する」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system#set-properties)​を参照してください。 ## [](#ヘッダーを設定する)ヘッダーを設定する ヘッダーを次の 2 つのレベルのいずれかで HTTP 要求に追加します。 - **Header (ヘッダー)**​ HTTP ​**Request**​ 操作レベル - **Default headers (デフォルトヘッダー)**​ HTTP ​**Request**​ グローバル設定レベル 要求のたびにヘッダーを指定することを避けるために、HTTP グローバル設定レベルでデフォルトヘッダーを設定します。この設定を使用すると、HTTP ​**Request**​ 操作レベルで設定したヘッダーと共にこのヘッダーがすべてのアウトバウンド要求に追加されます。 デフォルトヘッダーを含む一部のパラメーターでは式も受け入れられるため、動的値を使用できます。 次の例は、Studio で HTTP ​**Request**​ 操作レベルで ​**\[Headers (ヘッダー)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[Headers (ヘッダー)\]**​ タブを選択します。 3. プラス記号 (​**+**​) をクリックして、新しいヘッダーを追加します。 4. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"HeaderName1"`​ に変更します。 5. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"HeaderValue1"`​ に変更します。 ![HTTP Request 操作レベルのヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-4.png) **設定 XML**​ エディターでは、​`headers`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用してヘッダーを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[Headers (ヘッダー)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'HeaderName1' : 'HeaderValue1'}]`​ を追加します。 ![DataWeave 式を使用した HTTP Request 操作レベルのヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-5.png) **設定 XML**​ エディターでは、​`headers`​ 設定は次のように記述されます。 ```xml ``` 次の例は、Studio で HTTP ​**Request**​ グローバル設定レベルで ​**\[Default headers (デフォルトヘッダー)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Request**​ のすべてのインスタンスで使用できるグローバル要素を設定します。設定がすでに作成されている場合は、\[編集\] ボタンをクリックします。 3. **\[Settings (設定)\]**​ をクリックします。 4. **\[Default headers (デフォルトヘッダー)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. プラス記号 (​**+**​) をクリックして、新しいヘッダーを追加します。 6. **\[Key (キー)\]**​ を ​`x-csrf-token`​ に設定します。 7. **\[Value (値)\]**​ を ​`Fetch`​ に設定します。 ![HTTP 要求グローバル接続のデフォルトヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-6.png) 1. **\[Finish (完了)\]**​ をクリックします。 **設定 XML**​ エディターでは、​`default-headers`​ 設定は次のように記述されます。 ```xml ``` 次の例は、DataWeave 式を使用してデフォルトヘッダーを設定し、動的値を使用できるようにする方法を示しています。 1. ​**\[Default headers (デフォルトヘッダー)\]**​ 設定ウィンドウで 2. **\[Value (値)\]**​ の ​**\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[Value (値)\]**​ を ​`#[vars.role]`​ に設定します。 ![HTTP 要求グローバル接続のデフォルトヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-7.png) **設定 XML**​ エディターでは、​`default-headers`​ 設定は次のように記述されます。 ```xml ``` 設定要素内で DataWeave 式を使用すると、動的設定が構成されます。Mule アプリケーションが HTTP ​**Request**​ 操作を使用するたびに、設定内のすべての式が評価され、異なる値セットごとに新しい設定インスタンスが作成および初期化されます。
HTTP Connector では、デフォルトヘッダーには値の小さい式を使用してください。そうしなければ、評価のたびに異なる値が返され、HTTP クライアントのインスタンスが複数作成されるため、貴重なリソースをコンシュームし、パフォーマンスが低下します。
そのような場合は、HTTP ​**Request**​ 操作レベルで式を使用したヘッダーを設定します。 ```xml #[{'custom-role':vars.role}] ``` ## [](#クエリパラメーターを設定する)クエリパラメーターを設定する HTTP 要求のクエリパラメーターを設定する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[Query Parameters (クエリパラメーター)\]**​ タブを選択します。 3. プラス記号 (​**+**​) をクリックして、パラメーターを要求に追加します。 4. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"Keyquery"`​ に変更します。 5. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"Valuequery"`​ に変更します。 ![「Key (キー)」 項目が Keyquery、「Value (値)」 項目が Valuequery に設定されたクエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-8.png) **設定 XML**​ エディターでは、​`query-params`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用してクエリパラメーターを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[Query Parameters (クエリパラメーター)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'Keyquery' : 'Valuequery'}]`​ を追加します。 ![DataWeave 式を使用したクエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-9.png) **設定 XML**​ エディターでは、​`query-params`​ 設定は次のように記述されます。 ```xml ``` ## [](#uri-パラメーターを設定する)URI パラメーターを設定する 要求のパスにプレースホルダー (​`/customer/{customerId}`​ など) を使用する場合は、URI パラメーターを設定します。 次の例は、Studio で ​**\[URI Parameters (URI パラメーター)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Path (パス)\]**​ を ​`/customer/{customerID}`​ に設定します。 3. **\[URI Parameters (URI パラメーター)\]**​ タブを選択します。 4. プラス記号 (​**+**​) をクリックして、新しい URI パラメーターを追加します。 5. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"customerID"`​ に変更します。 6. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"20"`​ に変更します。 ![「Key (キー)」 項目が customerID、「Value (値)」 項目が 20 に設定された URI クエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-10.png) **設定 XML**​ エディターでは、​`uri-params`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用して URI パラメーターを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[URI Parameters (URI パラメーター)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. ​**\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'customerID' : '20'}]`​ を追加します。 ![DataWeave 式を使用した URI クエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-11.png) **設定 XML**​ エディターでは、​`uri-params`​ 設定は次のように記述されます。 ```xml ``` Mule アプリケーションが実行されると、​`http://www.example.com/customer/20`​ への ​`GET`​ 要求が実行されます。 ## [](#動的パラメーターおよびヘッダーを設定する)動的パラメーターおよびヘッダーを設定する アプリケーションの設計時に HTTP 要求で何個のパラメーターやヘッダーが必要かわからない場合、DataWeave 式と変数マップを使用して動的にパラメーターまたはヘッダーを HTTP 要求に割り当てます。 ヘッダーを動的に設定するには、変数マップを作成し、DataWeave 式を使用して変数値を割り当てます。次に、その変数を使用してリクエストヘッダーをセットアップします。たとえば、​`customMap`​ という変数マップを使用して、次のヘッダーを要求にセットアップします。​`#[vars.customMap ++ {'HeaderName1' : 'HeaderValue1'}]` URI パラメーターを動的に設定するには、パラメーターのマップを返す DataWeave 式を使用します。たとえば、次の手順を実行します。 1. **\[Path (パス)\]**​ を ​`/test/{p1}/{p2}`​ に設定します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[URI Parameters (URI パラメーター)\]**​ をクリックします。 3. **\[fx\]**​ ボタンをクリックしてリテラルモードに切り替えます。 4. 次の式 ​`vars.customMap ++ {'p2': 'customer'}`​ を設定します。 5. **\[Request\]**​ 操作の前に ​**\[Set Variable\]**​ 操作を追加します。 6. **\[Name (名前)\]**​ を ​`customMap`​ に設定します。 7. **\[Value (値)\]**​ を式 ​`{'p1': 'some'}`​ に設定します。 XML は次のようになります。 ```xml ``` このフローをトリガーすると、Request 操作によって要求がパス ​`/test/some/customer`​ に送信されます。 HTTP Connector は要求ごとにパラメーターを解決し、要求で指定された順序に従って現在のメッセージのコンテキストで DataWeave 式を評価します。1 つのパラメーターが複数回定義されている場合、最新の値が使用されます。 ## [](#フォームパラメーターを送信する)フォームパラメーターを送信する `POST`​ 要求でフォームパラメーターを送信する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Method (メソッド)\]**​ を ​**POST**​ に設定します。 3. **\[Body (本文)\]**​ で、Mule メッセージのペイロードを、送信するパラメーターの名前と値を指定した ​`application/x-www-form-urlencoded`​ として作成します。次に例をし召します。 `[output application/x-www-form-urlencoded --- {'key1':'value1', 'key2':'value2'}` ![DataWeave 式を使用した本文設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-12.png) **設定 XML**​ エディターでは、​`body`​ 設定は次のように記述されます。 ```xml ``` HTTP ​**Request**​ 操作は POST 要求をホストの場所に送信します。HTTP 要求には ​`Content-Type: application/x-www-form-urlencoded`​ が含まれており、本文は ​`key1=value1&key2=value2`​ です。 ## [](#ラウンドロビン方式の要求の設定)ラウンドロビン方式の要求の設定 この HTTP ​**Request**​ 操作は、設定されたホストにラウンドロビン DNS を使用して接続します。Mule は、指定されたホストに関連付けられているすべての IP アドレスを解決し、要求をすべての返された IP 間に分散することで負荷分散を行います。 認証が必要なリソースに操作を接続するとき、要求が拒否されることを避けるために、外部サービスはサービスのホスト内の IP アドレス間でセッション情報を複製する必要があります。 セッション維持を外部リソースが管理しない場合は、サービスホスト名を ​`mule.http.disableRoundRobin`​ システムプロパティに追加します。HTTP 要求は設定されたホストに接続するときにラウンドロビン DNS を使用しません。 Mule を開始するときに次のシステムプロパティを設定してください。 `./mule -M-Dmule.http.disableRoundRobin=serverhostname.com` ## [](#応答バリデーターを設定する)応答バリデーターを設定する HTTP ​**Request**​ 操作は、HTTP 応答を受信すると応答状況コードで応答を検証します。デフォルトでは、状況コードが 400 以上であれば HTTP Connector は HTTP エラー応答をスローします。そのため、サーバーが 404 (リソースが見つかりません) や 500 (内部サーバーエラー) を返した場合、失敗となり、コネクタによってエラー処理がトリガーされます。 2 つの ASCII ピリオド文字 (​`..`​) で失敗状況コードの範囲が定義されます。つまり、​`200..399`​ のように状況コード検証の範囲を設定できます。XML では次のようになります。 ```xml ``` 500 ~ 599 の値は失敗とみなされ、エラーが発生します。HTTP 応答の状況コードの値がそれ以外の場合、成功とみなされます。 HTTP ​**Request**​ 操作では、HTTP 応答受信時に次の属性が Mule メッセージに追加されます。 - `attributes.statusCode` HTTP 応答の状況を表すコード - `attributes.reasonPhrase` HTTP 応答の理由を説明する語句 HTTP 要求コール中の HTTP レスポンスボディの詳細な例は、​[「HTTP エラー応答の例」](https://docs.mulesoft.com/mule-runtime/latest/mule-error-concept#http-request-error)​を参照してください。 HTTP ​**Request**​ 操作設定で、​**\[Response validator (応答バリデーター)\]**​ 項目を次のいずれかのオプションに設定して HTTP 応答をカスタマイズできます。 - **None (なし)**​ デフォルトのバリデーターを使用します。このバリデーターは、、状況コードが 400 以上の場合はエラーをスローします。 - **Expression or Bean reference (式または bean 参照)**​ DataWeave 式または bean 参照を使用して状況コードを定義します。 - **Failure status code validator (失敗状況コード検証)**​ エラーをスローする失敗状況コードを定義します。 - **Success status code validator (成功状況コード検証)**​ 成功を示す状況コードを定義します。 次の例は、Studio で ​**\[Response validator (応答バリデーター)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Response (応答)\]**​ タブをクリックします。 3. **\[Response validator (応答バリデーター)\]**​ を ​**\[Success status code validator (成功状況コード検証)\]**​ に設定します。 4. **\[Values (値)\]**​ に、受け入れ可能な状況コードのカンマ区切りリスト (​`200,201`​ など) を追加します。 HTTP 応答で返された状況コードの値がそれ以外の場合、操作は失敗となり、エラーが発生します。 ![「Success status code validator (成功状況コード検証)」 に設定された 「Response validator (応答バリデーター)」 項目](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-13.png) **設定 XML**​ エディターでは、​`response-validator`​ 設定は次のように記述されます。 ```xml ``` ## [](#対象変数を設定する)対象変数を設定する デフォルトでは、HTTP リクエストボディは受信 Mule メッセージの ​`[payload]`​ から取得され、HTTP 応答は出力 Mule メッセージの ​`[payload]`​ として送信されます。 HTTP ​**Request**​ 操作のこのデフォルトの動作は、​**\[Body (本文)\]**​ 項目セクションか、​**\[Target Variable (対象変数)\]**​ 項目の値を更新して変更できます。この値は出力データの場所をペイロード以外 (変数など) に指定します。 次の例は、Studio で ​**\[Target Variable (対象変数)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Advanced (詳細)\]**​ タブを選択します。 3. **\[Target Variable (対象変数)\]**​ を ​`testvariable`​ に設定します。 4. **\[Target Value (対象値)\]**​ を ​`testvalue`​ に設定します。 ![対象変数と対象値の設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-14.png) **設定 XML**​ エディターでは、​`target`​ および ​`targetValue`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#要求ストリーミングモードを設定する)要求ストリーミングモードを設定する HTTP Connector は、リクエストボディの管理時に送信するデータの種類を考慮します。HTTP 要求をチャンクで送信するように HTTP ​**Request**​ 操作を設定できます。デフォルトでは、ペイロード種別がストリームの場合、ストリーミングメカニズムを使用して HTTP 要求が送信されます。 この動作を制御するには、​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS (常時)**​ ペイロード種別に関係なく常にストリーミングが有効になります。 - **AUTO (自動)**​ (デフォルト) 動作はペイロード種別に応じて異なります。ペイロードがストリームの場合、ストリーミングが有効になりになります。それ以外の場合は無効になります。 - **NEVER (なし)**​ ペイロードがストリームの場合も含め、ストリーミングしません。 ストリーミングの場合、HTTP 要求には ​`Content-Length`​ ヘッダーが含まれません。要求に含まれるのは ​`Transfer-Encoding`​ ヘッダーで、本文はストリーミングが完全にコンシュームされるまでチャンクで送信されます。 次の例は、Studio で ​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. HTTP ​**Request**​ 操作設定画面で ​**\[Request (要求)\]**​ タブをクリックします。 5. **\[Request streaming mode (要求ストリーミングモード)\]**​ を ​`ALWAYS`​ に設定します。 ![「Request streaming mode (要求ストリーミングモード)」 項目が ALWAYS に設定された HTTP 要求設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-15.png) **設定 XML**​ エディターでは、​`requestStreamingMode`​ 設定は次のように記述されます。 ```xml ``` ### [](#要求ストリーミングのシステムプロパティの設定)要求ストリーミングのシステムプロパティの設定 **\[Request streaming mode (要求ストリーミングモード)\]**​ を ​`ALWAYS`​ に設定すると、Mule アプリケーションは HTTP 要求をチャンクで送信しますが、この設定は Mule アプリケーションがペイロードを内部でストリーミングすることを意味するわけではありません。HTTP ​**Request**​ 操作では、HTTP 操作を送信する前にすべてのデータがメモリに格納されている必要があります。したがって、Mule アプリケーションが非常に大きなリクエストボディを送信する必要がある場合、大量のメモリを消費することになり、メモリ不足エラーが発生する可能性があります。この問題を防ぐために、内部要求ストリーミングを有効にする ​`mule.http.requestStreaming.enable`​ システムプロパティが提供されています。 このシステムプロパティを設定すると、HTTP ​**Request**​ 操作では、すべてのデータがメモリに格納される前にリクエストボディの送信が開始されます。したがって、Mule アプリケーションは、このプロパティを設定しない場合よりもメモリを必要としません。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.requestStreaming.enable=true` このプロパティのデフォルト値は、Mule Runtime バージョンによって異なります。Mule 4.4 以前では、このプロパティはデフォルトで ​`false`​ になります。Mule 4.5 以降では、このプロパティはデフォルトで ​`true`​ になります。 また、ストリーミングメカニズムの内部バッファの ​`mule.http.requestStreaming.bufferSize`​ システムプロパティを設定することもできます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.requestStreaming.bufferSize=value` Anypoint Studio で、またはオンプレミスデプロイでシステムプロパティを設定する方法については、​[システムプロパティ](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​のドキュメントを参照してください。 ## [](#応答ストリーミングを設定する)応答ストリーミングを設定する 大きなペイロードを要求する場合、HTTP ​**Request**​ グローバル設定で ​**\[Stream response (応答のストリーミング)\]**​ 項目をオンにすることで、応答をストリーミングするように選択できます。 デフォルトでは、​**\[Stream response (応答のストリーミング)\]**​ ボックスはオフ (​`false`​) です。このボックスをオン (​`true`​) にすると、Mule がチャンクをメモリ内バッファに保存して、HTTP 応答をストリームとして管理できるようになります。​**\[Response buffer size (応答バッファサイズ)\]**​ のデフォルト値 ​`1024`​ を大きな値に再設定することもできますが、バッファの問題を回避するには、ストリーミング時に応答をコンシュームすることが重要です。 次の例は、Studio で ​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目と ​**\[Response buffer size (応答バッファサイズ)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. プラス記号 (​**+**​) をクリックして HTTP Request グローバル設定を開きます。 5. **\[Stream response (応答のストリーミング)\]**​ ボックスをオンにします。 6. **\[Response buffer size (応答バッファサイズ)\]**​ を \`100 に設定します。 ![「Stream response (応答のストリーミング)」 項目がオン、「Response buffer size (応答バッファサイズ)」 項目が 100 に設定された HTTP 要求設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-16.png) **設定 XML**​ エディターでは、​`streamResponse`​ および ​`responseBufferSize`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#再試行メカニズムの設定)再試行メカニズムの設定 HTTP ​**Request**​ 操作では、再試行のために再接続戦略は使用しません。再接続戦略は、​`ConnectionException`​ エラーが発生した場合に Mule SDK で接続を再確立するために使用するメカニズムです。このメカニズムは、HTTP ​**Request**​ 操作により作成された HTTP サービスへの接続には影響しません。 接続についての詳細は、​[Mule SDK の接続](https://docs.mulesoft.com/mule-sdk/latest/connections)​のドキュメントを参照してください。 HTTP Connector では、外部 HTTP サービスのコンシュームの試行回数を設定できる再試行メカニズムが使用されます。コネクタはこのメカニズムを使用して HTTP クライアントを HTTP サービスに再接続します。HTTP Connector では TCP 接続が管理されないため、このメカニズムでソケットは再接続されません。 HTTP ​**Request**​ 操作が外部 HTTP サービスのコンシュームを試行できる回数 (​_再試行回数_​) を設定するには、次のいずれかを使用できます。 - **Until Successful**​ スコープコンポーネント - HTTP ​**Request**​ 操作の組み込み再試行メカニズム ### [](#until-successful-スコープを使用して再試行メカニズムを設定する)Until Successful スコープを使用して再試行メカニズムを設定する **Until Successful**​ スコープは、スコープ内のコンポーネントが成功するか、または最大再試行回数に達するまで、内部のコンポーネントを順番に処理します。このスコープで HTTP ​**Request**​ 操作を囲むと、​**\[Max Retries (最大試行回数)\]**​ 項目と ​**\[Milliseconds Between Retries (再試行回数間のミリ秒)\]**​ 項目を設定できます。 次の例は、Studio で ​**Until Successful**​ スコープを使用して再試行メカニズムを設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Core (コア)\] > \[Until Successful\]**​ を選択します。 2. **\[Until Successful\]**​ スコープコンポーネントを Studio キャンバスにドラッグします。 3. **\[Max retries (最大再試行回数)\]**​ を ​`5`​ に設定します。 4. **\[Milliseconds Between Retries (再試行回数間のミリ秒数)\]**​ を ​`10000`​ に設定します。 5. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 6. **\[Request\]**​ を ​**\[Until Successful\]**​ スコープコンポーネントにドラッグします。 ![HTTP Request 操作を使用した Until Successful スコープ設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-request-17.png) **設定 XML**​ エディターでは、​`until-successful`​、​`maxRetries`​、および ​`millisBetweenRetries`​ の設定は次の例のように記述されます。 ```xml ``` このスコープについての詳細は、​[「Until Successful スコープ」](https://docs.mulesoft.com/mule-runtime/latest/until-successful-scope)​を参照してください。 ### [](#組み込み再試行メカニズムの設定)組み込み再試行メカニズムの設定 HTTP ​**Request**​ 操作は、​`Remotely Closed`​ 種別のエラーを受信すると、冪等性メソッド ​`PUT`​、​`DELETE`​、​`GET`​、​`HEAD`​、​`OPTIONS`​、​`TRACE`​ を失敗するまで自動的に 3 回再試行します。このメカニズムは 2 つのシステムプロパティを設定してカスタマイズできます。 - `mule.http.client.maxRetries=5` このシステムプロパティでは、HTTP ​**Request**​ 操作が失敗するまでの再試行回数を設定できます。また、システムプロパティ値を 0 に設定して、組み込みメカニズムを使用しないようにすることもできます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.client.maxRetries=5` - `mule.http.client.retryOnAllMethods=true` このシステムプロパティを使用すると、組み込みメカニズムが冪等性メソッドだけでなくすべてのメソッドに拡張されます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.client.retryOnAllMethods=true` システムプロパティを設定する方法については、​[「システムプロパティ」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​を参照してください。​`POST`​ などの非冪等性メソッドがデフォルトで再試行されない理由については、 [RFC 7230](https://tools.ietf.org/html/rfc7230#section-6.3.1)​ を参照してください。 ## [](#関連情報)関連情報 - [Mule 4 スレッドプールとアプリケーションの調整](https://docs.mulesoft.com/mule-runtime/latest/execution-engine#thread-pools-and-tuning-apps) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-documentation#HttpResponseAttributes) # HTTP Request 操作の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作を使用すると、デフォルトの ​`GET`​ メソッドを使用して外部 HTTP サービスをコンシュームできます。それ以外の場合は、操作が受け入れるメソッドを選択できます。 - `GET`​ および ​`OPTIONS`​ メソッドは要求でペイロードを送信しません (HTTP リクエストボディは空です)。 - `CONNECT`​、​`DELETE`​、​`PATCH`​、​`POST`​、​`PUT`​ メソッドは、HTTP リクエストボディとしてメッセージペイロードを送信します。 HTTP ​**Request**​ 操作によって HTTP 要求が送信された後、コネクタは HTTP 応答を受信し、それを Mule アプリケーションのフローの次の要素に渡します。HTTP 応答は、さまざまな状況コードを使用して成功か失敗かを示します。また、操作によって HTTP 応答がどのように生成されるかをコネクタ操作のグローバル設定でカスタマイズすることができます。 デフォルトでは、操作は Mule メッセージペイロードを HTTP リクエストボディとして送信しますが、これは DataWeave スクリプトまたは式を使用してカスタマイズできます。リクエストボディに加えて、以下を設定できます。 - 要求および応答のサイズ制限 - ヘッダー - クエリパラメーター - URI パラメーター - 複数ヘッダーまたはパラメーターのマップ ## [](#http-要求接続を設定する)HTTP 要求接続を設定する HTTP ​**Request**​ 操作を使用するには、接続プロバイダーを使用して要求のグローバル設定をホスト URI に設定する必要があります。ホスト URI にはパスを含めることができます。さらに、受信ポートと通信プロトコルを設定できます。 - **Host (ホスト)**​ 要求が送信される場所を示します。ホスト名または IP を指定することもできます。 - **Port (ポート)**​ 要求が送信される場所を示します。 - **Protocol (プロトコル)**​ 通信のプロトコルを示します。標準接続の場合は HTTP、セキュアな TLS 接続の場合は HTTPS を使用します。 HTTPS を介したセキュアな接続を有効にするには、接続に TLS 設定コンテキストを定義し、次を指定する必要があります。 - サーバーのキーストア - トラストストア (相互認証が必要な場合) TLS 設定についての詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 さらに、​**\[Authentication (認証)\]**​ 項目を次の種別で設定できます。 - **Basic authentication (基本認証)** - **Digest authentication (ダイジェスト認証)** - **Ntlm authentication (NTLM 認証)**​ (NT LAN Manager) 認証種別と例についての詳細は、​[「HTTP 要求の認証の設定」](https://docs.mulesoft.com/jp/http-connector/1.9/http-authentication)​を参照してください。 次の例は、Studio で HTTP ​**Request**​ 接続を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Request**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[Host (ホスト)\]**​ を ​`localhost`​ に、​**\[Port (ポート)\]**​ を ​`8081`​ に設定します。 ![「Host (ホスト)」 項目が localhost、「Port (ポート)」 項目が 8081 に設定された HTTP Request グローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-1.png) 1. **\[TLS configuration (TLS 設定)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 2. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、​**\[Path (パス)\]**​ を ​`keystore.jks`​ に、​**\[Password (パスワード)\]**​ を ​`Mypassword`​ に設定します。 ![「Path (パス)」 項目が keystore.jks、「Password (パスワード)」 項目が Mypassword に設定された 「Trust Store Configuration (トラストストア設定)」 ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-2.png) 1. **\[Authentication (認証)\]**​ を ​**\[Basic authentication (基本認証)\]**​ に設定します。 2. **\[Username (ユーザー名)\]**​ を ​`testuser`​、​**\[Password (パスワード)\]**​ を ​`Mypassword`​ に設定します。 ![Basic authentication に設定された \[Authentication (認証)\] 項目、testuser に設定された \[User (ユーザー)\] 項目、Mypassword に設定された \[Password (パスワード)\] 項目](_images/http-request-3.png) 1. **\[OK\]**​ をクリックします。 2. HTTP ​**Request**​ 設定画面で、​**\[Path (パス)\]**​ を ​`/testpath`​ に設定します。 **設定 XML**​ エディターでは、​`host`​、​`port`​、​`path`​、​`trust-store`​、および ​`authentication`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#http-要求および応答のサイズ制限の設定)HTTP 要求および応答のサイズ制限の設定 デフォルトでは、HTTP 要求サイズ、応答サイズ、リクエスト/レスポンスヘッダーサイズの最大値が Mule によって定義されます。ただし、これらの値は ​`wrapper.conf`​ ファイルで次のプロパティを変更することで変更できます。
名前 プロパティ 説明 デフォルト値 (バイト)

Request/Response Header Size (リクエスト/レスポンスヘッダーサイズ)

mule.http.headerSectionSize

HTTP リクエストヘッダーセクション (要求行 + ヘッダー) で受け入れられる最大サイズ (バイト)

8192

Request Size (要求サイズ)

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size

送信する肯定応答されていない最大バイト数を保持および反映するために、未読バイト数を制御する受信バッファの最大サイズ。

1048576​ (1MB)

Response Size (応答サイズ)

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-send-buffer-size

受信側システムから肯定応答があるまで送信パッケージを制御する送信バッファの最大サイズ。

1048576​ (1MB)

`wrapper.conf`​ ファイルで次のシステムプロパティを変更して、サーバーレスポンスヘッダー、サーバーリクエストヘッダー、クライアントリクエストヘッダーの最大値を変更することもできます。
名前 プロパティ 説明 デフォルト値

Server Response Headers (サーバーレスポンスヘッダー)

mule.http.MAX_SERVER_RESPONSE_HEADERS

HTTP サーバーから送信される応答で許容されるヘッダーの最大量。

100

Server Request Headers (サーバーリクエストヘッダー)

mule.http.MAX_SERVER_REQUEST_HEADERS

HTTP サーバーから送信される要求で許容されるヘッダーの最大量。

100

Client Request Headers (クライアントリクエストヘッダー)

mule.http.MAX_CLIENT_REQUEST_HEADERS

HTTP クライアントから送信される要求で許容されるヘッダーの最大量。

100

クライアントの HTTP レスポンスヘッダーには最大量の制限がないため、Max Client Response Header のようなシステムプロパティはありません。 `wrapper.conf`​ ファイルでシステムプロパティを設定する方法についての詳細は、​[「wrapper.conf ファイルでシステムプロパティを設定する」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system#set-properties)​を参照してください。 ## [](#ヘッダーを設定する)ヘッダーを設定する ヘッダーを次の 2 つのレベルのいずれかで HTTP 要求に追加します。 - **Header (ヘッダー)**​ HTTP ​**Request**​ 操作レベル - **Default headers (デフォルトヘッダー)**​ HTTP ​**Request**​ グローバル設定レベル 要求のたびにヘッダーを指定することを避けるために、HTTP グローバル設定レベルでデフォルトヘッダーを設定します。この設定を使用すると、HTTP ​**Request**​ 操作レベルで設定したヘッダーと共にこのヘッダーがすべてのアウトバウンド要求に追加されます。 デフォルトヘッダーを含む一部のパラメーターでは式も受け入れられるため、動的値を使用できます。 次の例は、Studio で HTTP ​**Request**​ 操作レベルで ​**\[Headers (ヘッダー)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[Headers (ヘッダー)\]**​ タブを選択します。 3. プラス記号 (​**+**​) をクリックして、新しいヘッダーを追加します。 4. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"HeaderName1"`​ に変更します。 5. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"HeaderValue1"`​ に変更します。 ![HTTP Request 操作レベルのヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-4.png) **設定 XML**​ エディターでは、​`headers`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用してヘッダーを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[Headers (ヘッダー)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'HeaderName1' : 'HeaderValue1'}]`​ を追加します。 ![DataWeave 式を使用した HTTP Request 操作レベルのヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-5.png) **設定 XML**​ エディターでは、​`headers`​ 設定は次のように記述されます。 ```xml ``` 次の例は、Studio で HTTP ​**Request**​ グローバル設定レベルで ​**\[Default headers (デフォルトヘッダー)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Request**​ のすべてのインスタンスで使用できるグローバル要素を設定します。設定がすでに作成されている場合は、\[編集\] ボタンをクリックします。 3. **\[Settings (設定)\]**​ をクリックします。 4. **\[Default headers (デフォルトヘッダー)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 5. プラス記号 (​**+**​) をクリックして、新しいヘッダーを追加します。 6. **\[Key (キー)\]**​ を ​`x-csrf-token`​ に設定します。 7. **\[Value (値)\]**​ を ​`Fetch`​ に設定します。 ![HTTP 要求グローバル接続のデフォルトヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-6.png) 1. **\[Finish (完了)\]**​ をクリックします。 **設定 XML**​ エディターでは、​`default-headers`​ 設定は次のように記述されます。 ```xml ``` 次の例は、DataWeave 式を使用してデフォルトヘッダーを設定し、動的値を使用できるようにする方法を示しています。 1. **\[Default headers (デフォルトヘッダー)\]**​ 設定ウィンドウで。 2. **\[Value (値)\]**​ の ​**\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[Value (値)\]**​ を ​`#[vars.role]`​ に設定します。 ![HTTP 要求グローバル接続のデフォルトヘッダー設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-7.png) **設定 XML**​ エディターでは、​`default-headers`​ 設定は次のように記述されます。 ```xml ``` 設定要素内で DataWeave 式を使用すると、動的設定が構成されます。Mule アプリケーションが HTTP ​**Request**​ 操作を使用するたびに、設定内のすべての式が評価され、異なる値セットごとに新しい設定インスタンスが作成および初期化されます。
HTTP Connector では、デフォルトヘッダーには値の小さい式を使用してください。そうしなければ、評価のたびに異なる値が返され、HTTP クライアントのインスタンスが複数作成されるため、貴重なリソースをコンシュームし、パフォーマンスが低下します。
そのような場合は、HTTP ​**Request**​ 操作レベルで式を使用したヘッダーを設定します。 ```xml #[{'custom-role':vars.role}] ``` ## [](#クエリパラメーターを設定する)クエリパラメーターを設定する HTTP 要求のクエリパラメーターを設定する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[Query Parameters (クエリパラメーター)\]**​ タブを選択します。 3. プラス記号 (​**+**​) をクリックして、パラメーターを要求に追加します。 4. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"Keyquery"`​ に変更します。 5. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"Valuequery"`​ に変更します。 ![「Key (キー)」 項目が Keyquery、「Value (値)」 項目が Valuequery に設定されたクエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-8.png) **設定 XML**​ エディターでは、​`query-params`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用してクエリパラメーターを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[Query Parameters (クエリパラメーター)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. **\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'Keyquery' : 'Valuequery'}]`​ を追加します。 ![DataWeave 式を使用したクエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-9.png) **設定 XML**​ エディターでは、​`query-params`​ 設定は次のように記述されます。 ```xml ``` ## [](#uri-パラメーターを設定する)URI パラメーターを設定する 要求のパスにプレースホルダー (​`/customer/{customerId}`​ など) を使用する場合は、URI パラメーターを設定します。 次の例は、Studio で ​**\[URI Parameters (URI パラメーター)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Path (パス)\]**​ を ​`/customer/{customerID}`​ に設定します。 3. **\[URI Parameters (URI パラメーター)\]**​ タブを選択します。 4. プラス記号 (​**+**​) をクリックして、新しい URI パラメーターを追加します。 5. **\[Name (名前)\]**​ 列で、​**"Key"**​ を ​`"customerID"`​ に変更します。 6. **\[Value (値)\]**​ 列で、​**"Value"**​ を ​`"20"`​ に変更します。 ![「Key (キー)」 項目が customerID、「Value (値)」 項目が 20 に設定された URI クエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-10.png) **設定 XML**​ エディターでは、​`uri-params`​ 設定は次のように記述されます。 ```xml ``` DataWeave 式を使用して URI パラメーターを追加することもできます。 1. HTTP ​**Request**​ 操作設定ウィンドウで ​**\[URI Parameters (URI パラメーター)\]**​ タブを選択します。 2. **\[fx\]**​ をクリックしてリテラルモードに切り替えます。 3. ​**\[fx\]**​ ボタンの右にあるボックスに、DataWeave 式 ​`[{'customerID' : '20'}]`​ を追加します。 ![DataWeave 式を使用した URI クエリパラメーター設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-11.png) **設定 XML**​ エディターでは、​`uri-params`​ 設定は次のように記述されます。 ```xml ``` Mule アプリケーションが実行されると、​`http://www.example.com/customer/20`​ への ​`GET`​ 要求が実行されます。 ## [](#動的パラメーターおよびヘッダーを設定する)動的パラメーターおよびヘッダーを設定する アプリケーションの設計時に HTTP 要求で何個のパラメーターやヘッダーが必要かわからない場合、DataWeave 式と変数マップを使用して動的にパラメーターまたはヘッダーを HTTP 要求に割り当てます。 ヘッダーを動的に設定するには、変数マップを作成し、DataWeave 式を使用して変数値を割り当てます。次に、その変数を使用してリクエストヘッダーをセットアップします。たとえば、​`customMap`​ という変数マップを使用して、次のヘッダーを要求にセットアップします。​`#[vars.customMap ++ {'HeaderName1' : 'HeaderValue1'}]` URI パラメーターを動的に設定するには、パラメーターのマップを返す DataWeave 式を使用します。たとえば、次の手順を実行します。 1. **\[Path (パス)\]**​ を ​`/test/{p1}/{p2}`​ に設定します。 2. **\[General (一般)\]**​ の ​**\[Request (要求)\]**​ セクションで、​**\[URI Parameters (URI パラメーター)\]**​ をクリックします。 3. **\[fx\]**​ ボタンをクリックしてリテラルモードに切り替えます。 4. 次の式 ​`vars.customMap ++ {'p2': 'customer'}`​ を設定します。 5. **\[Request\]**​ 操作の前に ​**\[Set Variable\]**​ 操作を追加します。 6. **\[Name (名前)\]**​ を ​`customMap`​ に設定します。 7. **\[Value (値)\]**​ を式 ​`{'p1': 'some'}`​ に設定します。 XML は次のようになります。 ```xml ``` このフローをトリガーすると、Request 操作によって要求がパス ​`/test/some/customer`​ に送信されます。 HTTP Connector は要求ごとにパラメーターを解決し、要求で指定された順序に従って現在のメッセージのコンテキストで DataWeave 式を評価します。1 つのパラメーターが複数回定義されている場合、最新の値が使用されます。 ## [](#フォームパラメーターを送信する)フォームパラメーターを送信する `POST`​ 要求でフォームパラメーターを送信する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Method (メソッド)\]**​ を ​**POST**​ に設定します。 3. **\[Body (本文)\]**​ で、Mule メッセージのペイロードを、送信するパラメーターの名前と値を指定した ​`application/x-www-form-urlencoded`​ として作成します。次に例をし召します。 `[output application/x-www-form-urlencoded --- {'key1':'value1', 'key2':'value2'}` ![DataWeave 式を使用した本文設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-12.png) **設定 XML**​ エディターでは、​`body`​ 設定は次のように記述されます。 ```xml ``` HTTP ​**Request**​ 操作は POST 要求をホストの場所に送信します。HTTP 要求には ​`Content-Type: application/x-www-form-urlencoded`​ が含まれており、本文は ​`key1=value1&key2=value2`​ です。 ## [](#ラウンドロビン方式の要求の設定)ラウンドロビン方式の要求の設定 この HTTP ​**Request**​ 操作は、設定されたホストにラウンドロビン DNS を使用して接続します。Mule は、指定されたホストに関連付けられているすべての IP アドレスを解決し、要求をすべての返された IP 間に分散することで負荷分散を行います。 認証が必要なリソースに操作を接続するとき、要求が拒否されることを避けるために、外部サービスはサービスのホスト内の IP アドレス間でセッション情報を複製する必要があります。 セッション維持を外部リソースが管理しない場合は、サービスホスト名を ​`mule.http.disableRoundRobin`​ システムプロパティに追加します。HTTP 要求は設定されたホストに接続するときにラウンドロビン DNS を使用しません。 Mule を開始するときに次のシステムプロパティを設定してください。 `./mule -M-Dmule.http.disableRoundRobin=serverhostname.com` ## [](#応答バリデーターを設定する)応答バリデーターを設定する HTTP ​**Request**​ 操作は、HTTP 応答を受信すると応答状況コードで応答を検証します。デフォルトでは、状況コードが 400 以上であれば HTTP Connector は HTTP エラー応答をスローします。そのため、サーバーが 404 (リソースが見つかりません) や 500 (内部サーバーエラー) を返した場合、失敗となり、コネクタによってエラー処理がトリガーされます。 2 つの ASCII ピリオド文字 (​`..`​) で失敗状況コードの範囲が定義されます。つまり、​`200..399`​ のように状況コードバリデーターの範囲を設定できます。XML では次のようになります。 ```xml ``` 500 ~ 599 の値は失敗とみなされ、エラーが発生します。HTTP 応答の状況コードの値がそれ以外の場合、成功とみなされます。 HTTP ​**Request**​ 操作では、HTTP 応答受信時に次の属性が Mule メッセージに追加されます。 - `attributes.statusCode` HTTP 応答の状況を表すコード - `attributes.reasonPhrase` HTTP 応答の理由を説明する語句 HTTP 要求コール中の HTTP レスポンスボディの詳細な例は、​[「HTTP エラー応答の例」](https://docs.mulesoft.com/mule-runtime/latest/mule-error-concept#http-request-error)​を参照してください。 HTTP ​**Request**​ 操作設定で、​**\[Response validator (応答バリデーター)\]**​ 項目を次のいずれかのオプションに設定して HTTP 応答をカスタマイズできます。 - **None (なし)**​ デフォルトのバリデーターを使用します。このバリデーターは、状況コードが 400 以上の場合はエラーをスローします。 - **Expression or Bean reference (式または bean 参照)**​ DataWeave 式または bean 参照を使用して状況コードを定義します。 - **Failure status code validator (失敗状況コードバリデーター)**​ エラーをスローする失敗状況コードを定義します。 - **Success status code validator (成功状況コードバリデーター)**​ 成功を示す状況コードを定義します。 次の例は、Studio で ​**\[Response validator (応答バリデーター)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Response (応答)\]**​ タブをクリックします。 3. **\[Response validator (応答バリデーター)\]**​ を ​**\[Success status code validator (成功状況コードバリデーター)\]**​ に設定します。 4. **\[Values (値)\]**​ に、受け入れ可能な状況コードのカンマ区切りリスト (​`200,201`​ など) を追加します。 HTTP 応答で返された状況コードの値がそれ以外の場合、操作は失敗となり、エラーが発生します。 ![「Success status code validator (成功状況コードバリデーター)」 に設定された 「Response validator (応答バリデーター)」 項目](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-13.png) **設定 XML**​ エディターでは、​`response-validator`​ 設定は次のように記述されます。 ```xml ``` ## [](#対象変数を設定する)対象変数を設定する デフォルトでは、HTTP リクエストボディは受信 Mule メッセージの ​`[payload]`​ から取得され、HTTP 応答は出力 Mule メッセージの ​`[payload]`​ として送信されます。 HTTP ​**Request**​ 操作のこのデフォルトの動作は、​**\[Body (本文)\]**​ 項目セクションか、​**\[Target Variable (対象変数)\]**​ 項目の値を更新して変更できます。この値は出力データの場所をペイロード以外 (変数など) に指定します。 次の例は、Studio で ​**\[Target Variable (対象変数)\]**​ 項目を設定する方法を示しています。 1. フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[General (一般)\]**​ で、​**\[Advanced (詳細)\]**​ タブを選択します。 3. **\[Target Variable (対象変数)\]**​ を ​`testvariable`​ に設定します。 4. **\[Target Value (対象値)\]**​ を ​`testvalue`​ に設定します。 ![対象変数と対象値の設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-14.png) **設定 XML**​ エディターでは、​`target`​ および ​`targetValue`​ の設定は次の例のように記述されます。 ```xml ``` ## [](#要求ストリーミングモードを設定する)要求ストリーミングモードを設定する HTTP Connector は、リクエストボディの管理時に送信するデータの種類を考慮します。HTTP 要求をチャンクで送信するように HTTP ​**Request**​ 操作を設定できます。デフォルトでは、ペイロード種別がストリームの場合、ストリーミングメカニズムを使用して HTTP 要求が送信されます。 この動作を制御するには、​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS**​ ペイロード種別に関係なく常にストリーミングが有効になります。 - **AUTO**​ (デフォルト) 動作はペイロード種別に応じて異なります。ペイロードがストリームの場合、ストリーミングが有効になりになります。それ以外の場合は無効になります。 - **NEVER**​ ペイロードがストリームの場合も含め、ストリーミングしません。 ストリーミングの場合、HTTP 要求には ​`Content-Length`​ ヘッダーが含まれません。要求に含まれるのは ​`Transfer-Encoding`​ ヘッダーで、本文はストリーミングが完全にコンシュームされるまでチャンクで送信されます。 次の例は、Studio で ​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. HTTP ​**Request**​ 操作設定画面で ​**\[Request (要求)\]**​ タブをクリックします。 5. **\[Request streaming mode (要求ストリーミングモード)\]**​ を ​`ALWAYS`​ に設定します。 ![「Request streaming mode (要求ストリーミングモード)」 項目が ALWAYS に設定された HTTP 要求設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-15.png) **設定 XML**​ エディターでは、​`requestStreamingMode`​ 設定は次のように記述されます。 ```xml ``` ### [](#要求ストリーミングのシステムプロパティの設定)要求ストリーミングのシステムプロパティの設定 **\[Request streaming mode (要求ストリーミングモード)\]**​ を ​`ALWAYS`​ に設定すると、Mule アプリケーションは HTTP 要求をチャンクで送信しますが、この設定は Mule アプリケーションがペイロードを内部でストリーミングすることを意味するわけではありません。HTTP ​**Request**​ 操作では、HTTP 操作を送信する前にすべてのデータがメモリに格納されている必要があります。したがって、Mule アプリケーションが非常に大きなリクエストボディを送信する必要がある場合、大量のメモリを消費することになり、メモリ不足エラーが発生する可能性があります。この問題を防ぐために、内部要求ストリーミングを有効にする ​`mule.http.requestStreaming.enable`​ システムプロパティが提供されています。 このシステムプロパティを設定すると、HTTP ​**Request**​ 操作では、すべてのデータがメモリに格納される前にリクエストボディの送信が開始されます。したがって、Mule アプリケーションは、このプロパティを設定しない場合よりもメモリを必要としません。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.requestStreaming.enable=true` このプロパティのデフォルト値は、Mule Runtime バージョンによって異なります。Mule 4.4 以前では、このプロパティはデフォルトで ​`false`​ になります。Mule 4.5 以降では、このプロパティはデフォルトで ​`true`​ になります。 また、ストリーミングメカニズムの内部バッファの ​`mule.http.requestStreaming.bufferSize`​ システムプロパティを設定することもできます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.requestStreaming.bufferSize=value` Anypoint Studio で、またはオンプレミスデプロイでシステムプロパティを設定する方法については、​[システムプロパティ](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​のドキュメントを参照してください。 ## [](#応答ストリーミングを設定する)応答ストリーミングを設定する 大きなペイロードを要求する場合、HTTP ​**Request**​ グローバル設定で ​**\[Stream response (応答のストリーミング)\]**​ 項目をオンにすることで、応答をストリーミングするように選択できます。 デフォルトでは、​**\[Stream response (応答のストリーミング)\]**​ ボックスはオフ (​`false`​) です。このボックスをオン (​`true`​) にすると、Mule がチャンクをメモリ内バッファに保存して、HTTP 応答をストリームとして管理できるようになります。​**\[Response buffer size (応答バッファサイズ)\]**​ のデフォルト値 ​`1024`​ を大きな値に再設定することもできますが、バッファの問題を回避するには、ストリーミング時に応答をコンシュームすることが重要です。 次の例は、Studio で ​**\[Request streaming mode (要求ストリーミングモード)\]**​ 項目と ​**\[Response buffer size (応答バッファサイズ)\]**​ 項目を設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 2. **\[Request\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. プラス記号 (​**+**​) をクリックして HTTP Request グローバル設定を開きます。 5. **\[Stream response (応答のストリーミング)\]**​ ボックスをオンにします。 6. **\[Response buffer size (応答バッファサイズ)\]**​ を \`100 に設定します。 ![「Stream response (応答のストリーミング)」 項目がオン、「Response buffer size (応答バッファサイズ)」 項目が 100 に設定された HTTP 要求設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-16.png) **設定 XML**​ エディターでは、​`streamResponse`​ および ​`responseBufferSize`​ の設定は次の例のように記述されます。 ```xml ``` 応答ストリーミングを有効にしていて応答がチャンクされると、HTTP サービスは内部構造を使用してデータチャンクを保存します。HTTP ​**Request**​ 操作に対する次のプロセッサーが機能するために応答全体が必要な場合、プロセッサーはこれらの内部構造を読み取らないようにブロックすることもできます。その後、サーバーがチャンクを送信せず接続をクローズしないと、これらのプロセッサーは永久にブロックされる場合もあります。この状況を回避するために、HTTP サービスはデータが読み取られるのを待機するタイムアウトを確立します。デフォルトのタイムアウト値は 20 秒です。タイムアウト値は、システムプロパティ ​`mule.http.responseStreaming.pipeReadTimeoutMillis`​ を使用して変更できます。この値を調整することはお勧めしません。 ## [](#再試行メカニズムの設定)再試行メカニズムの設定 HTTP ​**Request**​ 操作では、再試行のために再接続戦略は使用しません。再接続戦略は、​`ConnectionException`​ エラーが発生した場合に Mule SDK で接続を再確立するために使用するメカニズムです。このメカニズムは、HTTP ​**Request**​ 操作により作成された HTTP サービスへの接続には影響しません。 接続についての詳細は、​[Mule SDK の接続](https://docs.mulesoft.com/mule-sdk/latest/connections)​のドキュメントを参照してください。 HTTP Connector では、外部 HTTP サービスのコンシュームの試行回数を設定できる再試行メカニズムが使用されます。コネクタはこのメカニズムを使用して HTTP クライアントを HTTP サービスに再接続します。HTTP Connector では TCP 接続が管理されないため、このメカニズムでソケットは再接続されません。 HTTP ​**Request**​ 操作が外部 HTTP サービスのコンシュームを試行できる回数 (​_再試行回数_​) を設定するには、次のいずれかを使用できます。 - **Until Successful**​ スコープコンポーネント - HTTP ​**Request**​ 操作の組み込み再試行メカニズム ### [](#until-successful-スコープを使用して再試行メカニズムを設定する)Until Successful スコープを使用して再試行メカニズムを設定する **Until Successful**​ スコープは、スコープ内のコンポーネントが成功するか、または最大再試行回数に達するまで、内部のコンポーネントを順番に処理します。このスコープで HTTP ​**Request**​ 操作を囲むと、​**\[Max Retries (最大試行回数)\]**​ 項目と ​**\[Milliseconds Between Retries (再試行回数間のミリ秒)\]**​ 項目を設定できます。 次の例は、Studio で ​**Until Successful**​ スコープを使用して再試行メカニズムを設定する方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Core (コア)\] > \[Until Successful\]**​ を選択します。 2. **\[Until Successful\]**​ スコープコンポーネントを Studio キャンバスにドラッグします。 3. **\[Max retries (最大再試行回数)\]**​ を ​`5`​ に設定します。 4. **\[Milliseconds Between Retries (再試行回数間のミリ秒数)\]**​ を ​`10000`​ に設定します。 5. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\] > \[Request\]**​ を選択します。 6. **\[Request\]**​ を ​**\[Until Successful\]**​ スコープコンポーネントにドラッグします。 ![HTTP Request 操作を使用した Until Successful スコープ設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-request-17.png) **設定 XML**​ エディターでは、​`until-successful`​、​`maxRetries`​、および ​`millisBetweenRetries`​ の設定は次の例のように記述されます。 ```xml ``` このスコープについての詳細は、​[「Until Successful スコープ」](https://docs.mulesoft.com/mule-runtime/latest/until-successful-scope)​を参照してください。 ### [](#組み込み再試行メカニズムの設定)組み込み再試行メカニズムの設定 HTTP ​**Request**​ 操作は、​`Remotely Closed`​ 種別のエラーを受信すると、冪等性メソッド ​`PUT`​、​`DELETE`​、​`GET`​、​`HEAD`​、​`OPTIONS`​、​`TRACE`​ を失敗するまで自動的に 3 回再試行します。このメカニズムは 2 つのシステムプロパティを設定してカスタマイズできます。 - `mule.http.client.maxRetries=5` このシステムプロパティでは、HTTP ​**Request**​ 操作が失敗するまでの再試行回数を設定できます。また、システムプロパティ値を 0 に設定して、組み込みメカニズムを使用しないようにすることもできます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.client.maxRetries=5` - `mule.http.client.retryOnAllMethods=true` このシステムプロパティを使用すると、組み込みメカニズムが冪等性メソッドだけでなくすべてのメソッドに拡張されます。 Mule を開始するときに次のシステムプロパティを設定してください。 ​`./mule -M-Dmule.http.client.retryOnAllMethods=true` システムプロパティを設定する方法については、​[「システムプロパティ」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​を参照してください。​`POST`​ などの非冪等性メソッドがデフォルトで再試行されない理由については、 [RFC 7230](https://tools.ietf.org/html/rfc7230#section-6.3.1)​ を参照してください。 ## [](#関連情報)関連情報 - [Mule 4 スレッドプールとアプリケーションの調整](https://docs.mulesoft.com/mule-runtime/latest/execution-engine#thread-pools-and-tuning-apps) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-documentation#HttpResponseAttributes) # HTTP Request 設定リファレンス HTTP Request 操作の典型的な使用方法は、デフォルトの GET メソッドを使用した外部 HTTP サービスのコンシュームです。デフォルトでは、GET および OPTIONS メソッドは要求でペイロードを送信しないため、HTTP リクエストボディは空です。他のメッセージでは、リクエストボディとしてメッセージペイロードが送信されます。 要求の送信後、コネクタは応答を受信し、それをアプリケーションのフローの次の要素に渡します。 この要求操作には少なくともホスト URI の設定が必要で、これにはパスが含まれることがあります。この要求操作には次の認証種別を設定できます。 - Basic (基本) - OAuth - NT LAN Manager (NTLM) - ダイジェスト ## [](#mule-メッセージと-http-request-のマップ)Mule メッセージと HTTP Request のマップ デフォルトでは、HTTP Request 操作は Mule メッセージペイロードを HTTP リクエストボディとして送信しますが、これは DataWeave スクリプトまたは式を使用してカスタマイズできます。 ## [](#カスタムパラメーターの追加)カスタムパラメーターの追加 リクエストボディに加えて、以下を設定できます。 - 要求および応答のサイズ制限 - ヘッダー - クエリパラメーター - URI パラメーター - 複数ヘッダーまたはパラメーターのマップ
Mule 4 では、HTTP Connector のバックエンドで処理される HTTP 要求の Server Name Indication (SNI) がサポートされます。
### [](#http-要求および応答のサイズ制限)HTTP 要求および応答のサイズ制限 デフォルトでは、Mule によって HTTP 要求サイズ、応答サイズ、リクエスト/レスポンスヘッダーサイズに異なる制限が定義されます。ただし、これらの最大値は ​`wrapper.conf`​ ファイルで対応するプロパティを変更することで変更できます。
最大許容値 プロパティ デフォルト値 (バイト)

Request/Response Header Size (リクエスト/レスポンスヘッダーサイズ)

mule.http.headerSectionSize

8192

Request Size (要求サイズ)

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size

1048576​ (1MB)

Response Size (応答サイズ)

org.glassfish.grizzly.nio.transport.TCPNIOTransport.max-send-buffer-size

1048576​ (1MB)

### [](#ヘッダー)ヘッダー **\[General (一般)\]**​ 設定の ​**\[Headers (ヘッダー)\]**​ を選択してヘッダーを要求に追加します。たとえば、ヘッダー名 ​`HeaderName1`​ および ​`HeaderName2`​ を追加し、ヘッダー値 ​`HeaderValue1`​ および ​`HeaderValue2`​ を追加します。DataWeave 式を使用できます。たとえば、​`#[{'HeaderName1' : 'HeaderValue1', 'HeaderName2' : 'HeaderValue2'}]`​ のようにします。 常に設定する一連のデフォルトヘッダーが存在する場合もあります。たとえば、​`x-csrf-token: Fetch`​ のような認証ヘッダーを常に送信する場合があります。 設定レベルでデフォルトヘッダーを指定すると、要求のたびにそのヘッダーを指定する必要がなくなります。次に例を示します。 ```xml ``` この設定を使用すると、実際の要求で指定したヘッダーと共にこのヘッダーがすべてのアウトバウンド要求に追加されます。 デフォルトヘッダーでは式も受け入れられるため、動的値を使用できます。次に例を示します。 ```xml ``` この方法は役立ち、便利ですが、いくつかの重要な考慮事項があります。設定要素内で式を使用すると、動的設定が構成されます。動的設定のライフサイクルについてはここで説明されていませんが、簡単に言うと、コネクタを使用するたびに設定内のすべての式が評価され、異なる値セットごとに新しい設定インスタンスが作成および初期化されます。 つまり、HTTP Connector の特定の事例では、式で使用する可能性があるすべての値の範囲が確実に小さい場合にのみ、式を含むデフォルトヘッダーを使用することをお勧めします。また、評価ごとに異なる値が生成される可能性がある場合は、HTTP クライアントの複数のインスタンスが作成されてしまいます。これは、(クライアントの初期化で追加の作業が実行されるために) パフォーマンスに影響し、多くのリソースを消費します。このような場合は、デフォルトヘッダーを使用せずに、要求操作自体でヘッダーを指定することをお勧めします。 ```xml #[{'custom-role':vars.role}] ``` ### [](#クエリパラメーター)クエリパラメーター **\[General (一般)\] > \[Request (要求)\] > \[Query Parameters (クエリパラメーター)\]**​ で、プラスアイコン (​**+**​) をクリックしてパラメーターを要求に追加します。パラメーターの名前と値を入力するか、DataWeave 式を使用して名前と値を定義します。 ### [](#uri-パラメーター)URI パラメーター 要求のパスにプレースホルダー (​`/customer/{customerId}`​ など) を使用する場合は、URI パラメーターを設定します。URI パラメーターを設定するには、​**\[Path (パス)\]**​ 項目にプレースホルダーを中括弧で囲んで入力します。​**\[URI Parameters (URI パラメーター)\]**​ を選択し、​**\[+\]**​ をクリックして名前と値を入力します。 たとえば、名前と値として ​**customerId**​ と ​**20**​ を入力します。 ![http mule4 uriparams](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-mule4-uriparams.png) または、名前項目と値項目で DataWeave 式を使用します。 アプリケーションが実行されると、​`http://www.example.com/customer/20`​ への GET 要求が実行されます。 ### [](#動的パラメーターおよびヘッダー)動的パラメーターおよびヘッダー 設計時に要求で何個のクエリパラメーターやヘッダーが必要かわからない場合、DataWeave と変数マップを使用して動的にパラメーターまたはヘッダーを要求に割り当てます。 たとえば、​`customMap`​ という名前のマップ変数を作成し、DataWeave を使用して値のマップを割り当ててから、その変数を使用して要求のヘッダーをセットアップできます。 `#[vars.customMap ++ {'HeaderName1' : 'HeaderValue1'}]` URI パラメーターを動的に設定するには、パラメーターのマップを返す DataWeave 式を使用します。次に例を示します。 - \[Path (パス)\] を設定: `/test/{p1}/{p2}` - URI パラメーター名: p1 と p2 - URI パラメーター値: `#[vars.customMap]` - 要求の前に、p1 がすでに設定されていると想定: `#[vars.customMap ++ {'p2': 'customer'}]` コネクタは要求ごとにパラメーターを解決し、要求で指定された順序に従って現在のメッセージのコンテキストで DataWeave 式を評価します。同じパラメーターが複数回定義されている場合、最新の値が使用されます。 ### [](#post-要求での-form-フォーム-パラメーターの送信)POST 要求での form (フォーム) パラメーターの送信 POST 要求でパラメーターを送信するには、​**\[General (一般)\] > \[Request (要求)\]**​ で、​**POST**​ メソッドを選択します。 **\[Body (本文)\]**​ で、Mule メッセージのペイロードを、送信するパラメーターの名前と値を指定した ​`application/x-www-form-urlencoded`​ として作成します。次に例を示します。 `#[output application/x-www-form-urlencoded --- {'key1':'value1', 'key2':'value2'}]` POST 要求が ​`Content-Type: application/x-www-form-urlencoded`​ で指定したホストの場所に送信されます。本文は「​`key1=value1&key2=value2`​」です。 ## [](#http-応答と-mule-メッセージのマップ)HTTP 応答と Mule メッセージのマップ HTTP 応答は、HTTP 要求が Mule メッセージにマップされるのと似た方法で、Mule メッセージにマップされます。 次の要素は HTTP 応答に適用​**されません**​。 - クエリパラメーター - URI パラメーター - HTTP 要求 URI に関連するインバウンド属性 さらに、HTTP Request 操作では、応答受信時に次の属性が Mule メッセージに追加されます。 - `attributes.statusCode`​: HTTP 応答の状況コード - `attributes.reasonPhrase`​: HTTP 応答の理由を示す語句 ## [](#ラウンドロビン方式の要求)ラウンドロビン方式の要求 この要求操作は、設定されたホストにラウンドロビン DNS を使用して接続します。Mule Runtime Engine は、指定されたホストに関連付けられているすべての IP アドレスを解決し、要求をすべての返された IP 間に分散することで負荷分散を行います。 認証が必要なリソースに接続するとき、外部サービスはサービスのホスト下の IP アドレス間でセッション情報を複製する必要があります。そうしないと、要求が認証されずに拒否される可能性があります。 Mule Runtime 開始時にサービスホスト名を ​`mule.http.disableRoundRobin`​ システムプロパティに追加するために必要なセッション維持を外部リソースが処理しない場合は、次のようにします。 ```console ./mule -M-Dmule.http.disableRoundRobin=serverhostname.com ``` この設定により、要求は、設定されたホストに接続するときにラウンドロビン DNS を使用しません。 ## [](#http-応答の検証)HTTP 応答の検証 HTTP Request 操作は、HTTP 応答を受信すると状況コードで応答を検証します。デフォルトでは、状況コードが 400 以上の場合はエラーをスローします。そのため、サーバーが 404 (リソースが見つかりません) や 500 (内部サーバーエラー) を返した場合、失敗となり、エラー処理がトリガーされます。 HTTP 要求コール中に例外がスローされたときに HTTP レスポンス本文の詳細な概要を確認するには、Mule エラードキュメントで次の​[例](https://docs.mulesoft.com/mule-runtime/latest/mule-error-concept#http-request-error)​を確認してください。 **\[General (一般)\] > \[Response (応答)\] > \[Response Validator (応答検証)\]**​ を設定して、有効な HTTP 応答コードのセットを変更できます。 - 注意: コネクタはデフォルトの検証を使用します。この検証は、状況コードが 400 以上の場合はエラーをスローします。 - Success Status Code Validator (成功状況コード検証): この要素内に定義されているすべての状況コードは有効とみなされます。その他の状況コードの場合、要求はエラーをスローします。 - Failure Status Code Validator (失敗状況コード検証): この要素内に定義されているすべての状況コードは無効とみなされ、エラーがスローされます。その他の状況コードの場合、要求は有効とみなされます。 成功応答として受け入れ可能な状況コードを設定するには、​**\[General (一般)\] > \[Response (応答)\] > \[Response Validator (応答検証)\]**​ で、​**\[Success Status Code Validator (成功状況コード検証)\]**​ を選択します。​**\[Values (値)\]**​ に、受け入れ可能な状況コードのカンマ区切りリストを入力します。例: **200,201**​。HTTP 応答の状況コードがそれ以外の場合、失敗となり、エラーが発生します。 失敗状況コードの範囲は、2 つの ASCII ピリオド文字 (​`..`​) で定義されます。500 ~ 599 の値は失敗とみなされ、エラーが発生します。HTTP 応答の状況コードがそれ以外の場合、成功とみなされます。 ## [](#対象の設定)対象の設定 デフォルトでは、リクエストボディは受信 Mule メッセージの ​`[payload]`​ から取得され、応答は出力 Mule メッセージの ​`[payload]`​ として次へ送信されます。このデフォルトの動作は、​**\[General (一般)\] > \[Request (要求)\] > \[Body (本文)\]**​ および ​**\[General (一般)\] > \[Output (出力)\] > \[Target Variable (対象変数)\]**​ 属性で変更できます。この属性を使用して、出力データの場所をペイロード以外 (変数など) に指定できます。 ## [](#要求ストリーミングの設定)要求ストリーミングの設定 デフォルトでは、ペイロードの種別がストリームの場合、ストリーミングを使用して要求が送信されます。このデフォルトの動作を変更できます。​**\[General (一般)\] > \[Request (要求)\] > \[Request Streaming (要求ストリーミング)\]**​ で次のいずれかの値を選択します。 - **AUTO**​ (自動) (デフォルト): 動作はペイロード種別に応じて異なります。ストリーミングは、ペイロードが InputStream の場合は有効になり、それ以外の場合は無効になります。 - **ALWAYS**​ (常時): ペイロード種別に関係なく常にストリーミングが有効になります。 - **NEVER**​ (なし): ペイロードがストリームの場合も含め、ストリーミングしません。 ストリーミングの場合、要求には ​`Content-Length`​ ヘッダーが含まれません。含まれるのは ​`Transfer-Encoding`​ ヘッダーで、本文はストリーミングが完全にコンシュームされるまでチャンクで送信されます。 ## [](#応答ストリーミングの設定)応答ストリーミングの設定 大きなペイロードを要求する場合、HTTP 要求設定で ​`streamResponse`​ 属性を設定することで、応答をストリーミングするように選択できます。 デフォルトでは、​`streamResponse`​ 属性は false に設定されています。この属性を true に設定すると、Mule がチャンクをメモリ内バッファに保存して、応答をストリームとして処理できるようになります。バッファサイズは ​`responseBufferSize`​ 属性を使用して設定できますが、デフォルトサイズは 10 KB です。 ```xml ``` 問題を回避するには、ストリーミング時に応答をコンシュームすることが重要です。 ## [](#再試行メカニズム)再試行メカニズム HTTP Connector では、外部 HTTP サービスのコンシュームの試行回数を設定できる再試行メカニズムが使用されます。HTTP Connector はこのメカニズムを使用して HTTP クライアントを HTTP サービスに再接続します。HTTP Connector では TCP 接続が管理されないため、このメカニズムでソケットは再接続されません。
HTTP Request​ 操作では、再試行のために再接続戦略は使用しません。再接続戦略は、​ConnectionException​ がキャッチされた場合に Mule SDK で​接続​を再確立するために使用するメカニズムです。これは、HTTP リクエスターにより作成された HTTP サービスへの接続には影響しません。 接続​についての詳細は、​接続のドキュメント​を参照してください。
HTTP リクエスターが外部 HTTP サービスのコンシュームを試行できる回数 (​_再試行回数_​) を設定するには、Until Successful スコープか、リクエスターの組み込み再試行メカニズムを使用できます。 - Until Successful スコープ Until Successful スコープは、内部のコンポーネントが成功するか、または最大再試行回数に達するまで、内部のコンポーネントを順番に処理します。次のように、このスコープで HTTP リクエスターを囲むと、最大再試行回数 ​`maxRetries`​ とその間隔 ​`millisBetweenRetries`​ を設定できます。 ```xml ``` スコープについての詳細は、​[「Until Successful スコープ」](https://docs.mulesoft.com/mule-runtime/latest/until-successful-scope)​を参照してください。 - 組み込みメカニズム HTTP リクエスターは、​`Remotely Closed`​ 種別のエラーを受信すると、デフォルトで冪等性メソッド ​`PUT`​、​`DELETE`​、​`GET`​、​`HEAD`​、​`OPTIONS`​、​`TRACE`​ を失敗するまで自動的に 3 回再試行します。 そのため、このメカニズムで 2 つのシステムプロパティを設定できます。 - `-M-Dmule.http.client.maxRetries=5` このシステムプロパティでは、HTTP リクエスターが失敗するまでの再試行回数を設定できます。また、その値を 0 に設定して、組み込みメカニズムを使用しないようにすることもできます。 - `-M-Dmule.http.client.retryOnAllMethods=true` このシステムプロパティを使用すると、組み込みメカニズムが冪等性メソッドだけでなくすべてのメソッドに拡張されます。 これらのプロパティについての詳細は、​[「システムプロパティ」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​を参照してください。​`POST`​ などの非冪等性メソッドがデフォルトで再試行されない理由については、 [RFC 7230](https://tools.ietf.org/html/rfc7230#section-6.3.1)​ を参照してください。 ## [](#関連情報)関連情報 - [Mule 4 スレッドプールとアプリケーションの調整](https://docs.mulesoft.com/mule-runtime/latest/execution-engine#thread-pools-and-tuning-apps) - [Until Successful スコープ](https://docs.mulesoft.com/mule-runtime/latest/until-successful-scope) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation#HttpResponseAttributes) # HTTP エラー状況コードと理由を示す語句の例 次の例は、ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定できるように、HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースを設定する方法を示しています。HTTP 要求の状況コードと説明を表示するには、ブラウザー拡張機能または [curl](http://curl.haxx.se/)​ コマンドラインユーティリティを使用します。 この例では、アドレス ​`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 アプリケーションフローを示しています。 ![HTTP エラー状況コードと理由を示す語句のフロー](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-error-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/login`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-error-studio-1.png) 1. HTTP リスナーの ​**\[Responses (応答)\]**​ タブの ​**\[Response (応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`200`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`Login Successful`​ に設定します。 2. **\[Error Response (エラー応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`#[vars.errorStatusCode]`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`#[vars.errorReasonPhrase]`​ に設定します。 ![HTTP エラー状況コードと理由](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-error-studio-2.png) 1. **\[Validation: Is True\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの後にドラッグします。 2. **\[General (一般)\]**​ タブの ​**\[General (一般)\]**​ セクションで、ドロップダウンメニューから ​**\[Expression (式)\]**​ を選択します。​`user`​ クエリパラメーターを検証するには、次のコードを \[expression (式)\] 項目ボックスに追加します。 ```text #[attributes.queryParams.user == 'mule'] ``` ![Validate Module 設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-error-studio-3.png) 1. **\[Set Payload\]**​ トランスフォーマーを ​**\[Validation: Is True\]**​ 操作の後にドラッグし、​**\[Value (値)\]**​ 項目を ​`Log in Successful!`​ に設定します。 ![Set Payload の設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-error-studio-4.png) Figure 1. Set Payload の設定 1. フローの ​**\[Error Handling (エラー処理)\]**​ セクションで、​**On Error Propagate**​ コンポーネントを追加します。 2. **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`​ に設定します。 ![エラー処理設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-error-studio-5.png) 1. Mule アプリケーションを保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 3. cURL で、URL ​`[http://localhost:8081/login?user=mule](http://localhost:8081/login?user=mule)`​ をテストします。 ユーザーが有効な場合は結果で ​`200 Log in Successful!`​ を返され、有効でない場合は ​`404 Requested user does not exist`​ が返されます。 ## [](#http-エラー状況コードと理由を示す語句の-xml)HTTP エラー状況コードと理由を示す語句の XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP エラー状況コードと理由を示す語句の例 次の例は、ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定できるように、HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースを設定する方法を示しています。HTTP 要求の状況コードと説明を表示するには、ブラウザー拡張機能または [curl](http://curl.haxx.se/)​ コマンドラインユーティリティを使用します。 この例では、アドレス ​`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 アプリケーションフローを示しています。 ![HTTP エラー状況コードと理由を示す語句のフロー](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-error-flow.png) Figure 1. HTTP エラー状況コードと理由を示す語句のフロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/login`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-error-studio-1.png) Figure 2. HTTP リスナー設定 1. HTTP リスナーの ​**\[Responses (応答)\]**​ タブの ​**\[Response (応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`200`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`Login Successful`​ に設定します。 2. **\[Error Response (エラー応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`#[vars.errorStatusCode]`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`#[vars.errorReasonPhrase]`​ に設定します。 ![HTTP エラー状況コードと理由](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-error-studio-2.png) Figure 3. HTTP エラー状況コードと理由 1. **\[Validation: Is True\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの後にドラッグします。 2. **\[General (一般)\]**​ タブの ​**\[General (一般)\]**​ セクションで、ドロップダウンメニューから ​**\[Expression (式)\]**​ を選択します。​`user`​ クエリパラメーターを検証するには、次のコードを \[expression (式)\] 項目ボックスに追加します。 ```text #[attributes.queryParams.user == 'mule'] ``` ![Validate Module 設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-error-studio-3.png) Figure 4. Validation Module 設定 1. **\[Set Payload\]**​ トランスフォーマーを ​**\[Validation: Is True\]**​ 操作の後にドラッグし、​**\[Value (値)\]**​ 項目を ​`Log in Successful!`​ に設定します。 ![Set Payload の設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-error-studio-4.png) Figure 5. Set Payload の設定 1. フローの ​**\[Error Handling (エラー処理)\]**​ セクションで、​**On Error Propagate**​ コンポーネントを追加します。 2. **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`​ に設定します。 ![エラー処理設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-error-studio-5.png) Figure 6. エラー処理設定 1. Mule アプリケーションを保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 3. cURL で、URL ​`[http://localhost:8081/login?user=mule](http://localhost:8081/login?user=mule)`​ をテストします。 ユーザーが有効な場合は結果で ​`200 Log in Successful!`​ を返され、有効でない場合は ​`404 Requested user does not exist`​ が返されます。 ## [](#http-エラー状況コードと理由を示す語句の-xml)HTTP エラー状況コードと理由を示す語句の XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP エラー状況コードと理由を示す語句の例 次の例は、ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定できるように、HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースを設定する方法を示しています。HTTP 要求の状況コードと説明を表示するには、ブラウザー拡張機能または [curl](http://curl.haxx.se/)​ コマンドラインユーティリティを使用します。 この例では、アドレス ​`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 アプリケーションフローを示しています。 ![HTTP エラー状況コードと理由を示す語句のフロー](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-error-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/login`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-error-studio-1.png) 1. HTTP リスナーの ​**\[Responses (応答)\]**​ タブの ​**\[Response (応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`200`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`Login Successful`​ に設定します。 2. **\[Error Response (エラー応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`#[vars.errorStatusCode]`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`#[vars.errorReasonPhrase]`​ に設定します。 ![HTTP エラー状況コードと理由](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-error-studio-2.png) 1. **\[Validation: Is True\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの後にドラッグします。 2. **\[General (一般)\]**​ タブの ​**\[General (一般)\]**​ セクションで、ドロップダウンメニューから ​**\[Expression (式)\]**​ を選択します。​`user`​ クエリパラメーターを検証するには、次のコードを \[expression (式)\] 項目ボックスに追加します。 ```text #[attributes.queryParams.user == 'mule'] ``` ![Validate Module 設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-error-studio-3.png) 1. **\[Set Payload\]**​ トランスフォーマーを ​**\[Validation: Is True\]**​ 操作の後にドラッグし、​**\[Value (値)\]**​ 項目を ​`Log in Successful!`​ に設定します。 ![Set Payload の設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-error-studio-4.png) Figure 1. Set Payload の設定 1. フローの ​**\[Error Handling (エラー処理)\]**​ セクションで、​**On Error Propagate**​ コンポーネントを追加します。 2. **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`​ に設定します。 ![エラー処理設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-error-studio-5.png) 1. Mule アプリケーションを保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 3. cURL で、URL ​`[http://localhost:8081/login?user=mule](http://localhost:8081/login?user=mule)`​ をテストします。 ユーザーが有効な場合は結果で ​`200 Log in Successful!`​ を返され、有効でない場合は ​`404 Requested user does not exist`​ が返されます。 ## [](#http-エラー状況コードと理由を示す語句の-xml)HTTP エラー状況コードと理由を示す語句の XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP エラー状況コードと理由を示す語句の例 次の例は、ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定できるように、HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースを設定する方法を示しています。HTTP 要求の状況コードと説明を表示するには、ブラウザー拡張機能または [curl](http://curl.haxx.se/)​ コマンドラインユーティリティを使用します。 この例では、アドレス ​`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 アプリケーションフローを示しています。 ![HTTP エラー状況コードと理由を示す語句のフロー](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-error-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/login`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-error-studio-1.png) 1. HTTP リスナーの ​**\[Responses (応答)\]**​ タブの ​**\[Response (応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`200`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`Login Successful`​ に設定します。 2. **\[Error Response (エラー応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`#[vars.errorStatusCode]`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`#[vars.errorReasonPhrase]`​ に設定します。 ![HTTP エラー状況コードと理由](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-error-studio-2.png) 1. **\[Validation: Is True\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの後にドラッグします。 2. **\[General (一般)\]**​ タブの ​**\[General (一般)\]**​ セクションで、ドロップダウンメニューから ​**\[Expression (式)\]**​ を選択します。​`user`​ クエリパラメーターを検証するには、次のコードを \[expression (式)\] 項目ボックスに追加します。 ```text #[attributes.queryParams.user == 'mule'] ``` ![Validate Module 設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-error-studio-3.png) 1. **\[Set Payload\]**​ トランスフォーマーを ​**\[Validation: Is True\]**​ 操作の後にドラッグし、​**\[Value (値)\]**​ 項目を ​`Log in Successful!`​ に設定します。 ![Set Payload の設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-error-studio-4.png) Figure 1. Set Payload の設定 1. フローの ​**\[Error Handling (エラー処理)\]**​ セクションで、​**On Error Propagate**​ コンポーネントを追加します。 2. **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`​ に設定します。 ![エラー処理設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-error-studio-5.png) 1. Mule アプリケーションを保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 3. cURL で、URL ​`[http://localhost:8081/login?user=mule](http://localhost:8081/login?user=mule)`​ をテストします。 ユーザーが有効な場合は結果で ​`200 Log in Successful!`​ を返され、有効でない場合は ​`404 Requested user does not exist`​ が返されます。 ## [](#http-エラー状況コードと理由を示す語句の-xml)HTTP エラー状況コードと理由を示す語句の XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP エラー状況コードと理由を示す語句の例 次の例は、ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定できるように、HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースを設定する方法を示しています。HTTP 要求の状況コードと説明を表示するには、ブラウザー拡張機能または [curl](http://curl.haxx.se/)​ コマンドラインユーティリティを使用します。 この例では、アドレス ​`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 アプリケーションフローを示しています。 ![HTTP エラー状況コードと理由を示す語句のフロー](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-error-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/login`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-error-studio-1.png) 1. HTTP リスナーの ​**\[Responses (応答)\]**​ タブの ​**\[Response (応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`200`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`Login Successful`​ に設定します。 2. **\[Error Response (エラー応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`#[vars.errorStatusCode]`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`#[vars.errorReasonPhrase]`​ に設定します。 ![HTTP エラー状況コードと理由](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-error-studio-2.png) 1. **\[Validation: Is True\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの後にドラッグします。 2. **\[General (一般)\]**​ タブの ​**\[General (一般)\]**​ セクションで、ドロップダウンメニューから ​**\[Expression (式)\]**​ を選択します。​`user`​ クエリパラメーターを検証するには、次のコードを \[expression (式)\] 項目ボックスに追加します。 ```text #[attributes.queryParams.user == 'mule'] ``` ![Validate Module 設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-error-studio-3.png) 1. **\[Set Payload\]**​ トランスフォーマーを ​**\[Validation: Is True\]**​ 操作の後にドラッグし、​**\[Value (値)\]**​ 項目を ​`Log in Successful!`​ に設定します。 ![Set Payload の設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-error-studio-4.png) Figure 1. Set Payload の設定 1. フローの ​**\[Error Handling (エラー処理)\]**​ セクションで、​**On Error Propagate**​ コンポーネントを追加します。 2. **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`​ に設定します。 ![エラー処理設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-error-studio-5.png) 1. Mule アプリケーションを保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 3. cURL で、URL ​`[http://localhost:8081/login?user=mule](http://localhost:8081/login?user=mule)`​ をテストします。 ユーザーが有効な場合は結果で ​`200 Log in Successful!`​ を返され、有効でない場合は ​`404 Requested user does not exist`​ が返されます。 ## [](#http-エラー状況コードと理由を示す語句の-xml)HTTP エラー状況コードと理由を示す語句の XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP エラー状況コードと理由を示す語句の例 次の例は、ユーザーログイン検証要求のエラー状況コードと理由を示す語句を設定できるように、HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースを設定する方法を示しています。HTTP 要求の状況コードと説明を表示するには、ブラウザー拡張機能または [curl](http://curl.haxx.se/)​ コマンドラインユーティリティを使用します。 この例では、アドレス ​`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 アプリケーションフローを示しています。 ![HTTP エラー状況コードと理由を示す語句のフロー](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-error-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/login`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-error-studio-1.png) 1. HTTP リスナーの ​**\[Responses (応答)\]**​ タブの ​**\[Response (応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`200`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`Login Successful`​ に設定します。 2. **\[Error Response (エラー応答)\]**​ セクションで、​**\[Status Code (状況コード)\]**​ を ​`#[vars.errorStatusCode]`​、​**\[Reason phrase (理由を示す語句)\]**​ を ​`#[vars.errorReasonPhrase]`​ に設定します。 ![HTTP エラー状況コードと理由](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-error-studio-2.png) 1. **\[Validation: Is True\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの後にドラッグします。 2. **\[General (一般)\]**​ タブの ​**\[General (一般)\]**​ セクションで、ドロップダウンメニューから ​**\[Expression (式)\]**​ を選択します。​`user`​ クエリパラメーターを検証するには、次のコードを \[expression (式)\] 項目ボックスに追加します。 ```text #[attributes.queryParams.user == 'mule'] ``` ![Validation Module 設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-error-studio-3.png) 1. **\[Set Payload\]**​ トランスフォーマーを ​**\[Validation: Is True\]**​ 操作の後にドラッグし、​**\[Value (値)\]**​ 項目を ​`Log in Successful!`​ に設定します。 ![Set Payload の設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-error-studio-4.png) Figure 1. Set Payload の設定 1. フローの ​**\[Error Handling (エラー処理)\]**​ セクションで、​**On Error Propagate**​ コンポーネントを追加します。 2. **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`​ に設定します。 ![エラー処理設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-error-studio-5.png) 1. Mule アプリケーションを保存します。 2. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 3. cURL で、URL ​`[http://localhost:8081/login?user=mule](http://localhost:8081/login?user=mule)`​ をテストします。 ユーザーが有効な場合は結果で ​`200 Log in Successful!`​ を返され、有効でない場合は ​`404 Requested user does not exist`​ が返されます。 ## [](#http-エラー状況コードと理由を示す語句の-xml)HTTP エラー状況コードと理由を示す語句の XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP メソッドに基づく要求の転送の例 次の例は、HTTP メソッドに基づいて要求を転送するように HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![HTTP メソッドに基づく要求の転送のフロー](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-routemethod-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` - **Base Path (ベースパス)**​: `mypath` 5. **\[OK\]**​ をクリックします。 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`flow 1`​ に設定します。 8. \[HTTP\] の別の ​**\[Listener\]**​ ソースを最初のフローの下にドラッグして、2 番目のフローを作成します。 9. **\[Connector Configuration (コネクタ設定)\]**​ 項目を、最初の ​**Listener**​ 用に作成したグローバル要素である ​`HTTP_Listener_Config`​ に設定します。 10. **\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 11. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブを選択し、​**\[Allowed Methods (許可されるメソッド)\]**​ 項目を ​`POST`​ に設定します。 12. 別の ​**\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 13. **\[Message (メッセージ)\]**​ 項目を ​`flow 2`​ に設定します。 14. Mule アプリケーションを保存します。 15. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 16. ブラウザー拡張機能で、HTTP ​`GET`​ および ​`POST`​ 要求を ​`http://localhost:8081/mypath/requests`​ に送信します。 `GET`​ 要求応答は ​`flow 1`​ です。​`POST`​ 要求応答は ​`flow 2`​ です。 17. `DELETE`​ 要求を送信します。 `DELETE`​ は許可されないメソッドであるため、​`405 Method Not Allowed`​ メッセージが返されます。 ## [](#http-メソッドに基づいて要求を転送するための-xml)HTTP メソッドに基づいて要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP メソッドに基づく要求の転送の例 次の例は、HTTP メソッドに基づいて要求を転送するように HTTP 用 Anypoint Connector (HTTP Connector) の Listener 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![HTTP メソッドに基づく要求の転送のフロー](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-routemethod-flow.png) Figure 1. HTTP メソッドに基づく要求の転送のフロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` - **Base Path (ベースパス)**​: `mypath` 5. **\[OK\]**​ をクリックします。 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`flow 1`​ に設定します。 8. \[HTTP\] の別の ​**\[Listener\]**​ ソースを最初のフローの下にドラッグして、2 番目のフローを作成します。 9. **\[Connector Configuration (コネクタ設定)\]**​ 項目を、最初の ​**Listener**​ 用に作成したグローバル要素である ​`HTTP_Listener_Config`​ に設定します。 10. **\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 11. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブを選択し、​**\[Allowed Methods (許可されるメソッド)\]**​ 項目を ​`POST`​ に設定します。 12. 別の ​**\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 13. **\[Message (メッセージ)\]**​ 項目を ​`flow 2`​ に設定します。 14. Mule アプリケーションを保存します。 15. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 16. ブラウザー拡張機能で、HTTP ​`GET`​ および ​`POST`​ 要求を ​`http://localhost:8081/mypath/requests`​ に送信します。 `GET`​ 要求応答は ​`flow 1`​ です。​`POST`​ 要求応答は ​`flow 2`​ です。 17. `DELETE`​ 要求を送信します。 `DELETE`​ は許可されないメソッドであるため、​`405 Method Not Allowed`​ メッセージが返されます。 ## [](#http-メソッドに基づいて要求を転送するための-xml)HTTP メソッドに基づいて要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP メソッドに基づく要求の転送の例 次の例は、HTTP メソッドに基づいて要求を転送するように HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![HTTP メソッドに基づく要求の転送のフロー](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-routemethod-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` - **Base Path (ベースパス)**​: `mypath` 5. **\[OK\]**​ をクリックします。 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`flow 1`​ に設定します。 8. \[HTTP\] の別の ​**\[Listener\]**​ ソースを最初のフローの下にドラッグして、2 番目のフローを作成します。 9. **\[Connector Configuration (コネクタ設定)\]**​ 項目を、最初の ​**Listener**​ 用に作成したグローバル要素である ​`HTTP_Listener_Config`​ に設定します。 10. **\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 11. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブを選択し、​**\[Allowed Methods (許可されるメソッド)\]**​ 項目を ​`POST`​ に設定します。 12. 別の ​**\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 13. **\[Message (メッセージ)\]**​ 項目を ​`flow 2`​ に設定します。 14. Mule アプリケーションを保存します。 15. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 16. ブラウザー拡張機能で、HTTP ​`GET`​ および ​`POST`​ 要求を ​`http://localhost:8081/mypath/requests`​ に送信します。 `GET`​ 要求応答は ​`flow 1`​ です。​`POST`​ 要求応答は ​`flow 2`​ です。 17. `DELETE`​ 要求を送信します。 `DELETE`​ は許可されないメソッドであるため、​`405 Method Not Allowed`​ メッセージが返されます。 ## [](#http-メソッドに基づいて要求を転送するための-xml)HTTP メソッドに基づいて要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP メソッドに基づく要求の転送の例 次の例は、HTTP メソッドに基づいて要求を転送するように HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![HTTP メソッドに基づく要求の転送のフロー](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-routemethod-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` - **Base Path (ベースパス)**​: `mypath` 5. **\[OK\]**​ をクリックします。 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`flow 1`​ に設定します。 8. \[HTTP\] の別の ​**\[Listener\]**​ ソースを最初のフローの下にドラッグして、2 番目のフローを作成します。 9. **\[Connector Configuration (コネクタ設定)\]**​ 項目を、最初の ​**Listener**​ 用に作成したグローバル要素である ​`HTTP_Listener_Config`​ に設定します。 10. **\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 11. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブを選択し、​**\[Allowed Methods (許可されるメソッド)\]**​ 項目を ​`POST`​ に設定します。 12. 別の ​**\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 13. **\[Message (メッセージ)\]**​ 項目を ​`flow 2`​ に設定します。 14. Mule アプリケーションを保存します。 15. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 16. ブラウザー拡張機能で、HTTP ​`GET`​ および ​`POST`​ 要求を ​`http://localhost:8081/mypath/requests`​ に送信します。 `GET`​ 要求応答は ​`flow 1`​ です。​`POST`​ 要求応答は ​`flow 2`​ です。 17. `DELETE`​ 要求を送信します。 `DELETE`​ は許可されないメソッドであるため、​`405 Method Not Allowed`​ メッセージが返されます。 ## [](#http-メソッドに基づいて要求を転送するための-xml)HTTP メソッドに基づいて要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP メソッドに基づく要求の転送の例 次の例は、HTTP メソッドに基づいて要求を転送するように HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![HTTP メソッドに基づく要求の転送のフロー](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-routemethod-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` - **Base Path (ベースパス)**​: `mypath` 5. **\[OK\]**​ をクリックします。 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`flow 1`​ に設定します。 8. \[HTTP\] の別の ​**\[Listener\]**​ ソースを最初のフローの下にドラッグして、2 番目のフローを作成します。 9. **\[Connector Configuration (コネクタ設定)\]**​ 項目を、最初の ​**Listener**​ 用に作成したグローバル要素である ​`HTTP_Listener_Config`​ に設定します。 10. **\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 11. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブを選択し、​**\[Allowed Methods (許可されるメソッド)\]**​ 項目を ​`POST`​ に設定します。 12. 別の ​**\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 13. **\[Message (メッセージ)\]**​ 項目を ​`flow 2`​ に設定します。 14. Mule アプリケーションを保存します。 15. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 16. ブラウザー拡張機能で、HTTP ​`GET`​ および ​`POST`​ 要求を ​`http://localhost:8081/mypath/requests`​ に送信します。 `GET`​ 要求応答は ​`flow 1`​ です。​`POST`​ 要求応答は ​`flow 2`​ です。 17. `DELETE`​ 要求を送信します。 `DELETE`​ は許可されないメソッドであるため、​`405 Method Not Allowed`​ メッセージが返されます。 ## [](#http-メソッドに基づいて要求を転送するための-xml)HTTP メソッドに基づいて要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP メソッドに基づく要求の転送の例 次の例は、HTTP メソッドに基づいて要求を転送するように HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![HTTP メソッドに基づく要求の転送のフロー](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-routemethod-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` - **Base Path (ベースパス)**​: `mypath` 5. **\[OK\]**​ をクリックします。 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Message (メッセージ)\]**​ 項目を ​`flow 1`​ に設定します。 8. \[HTTP\] の別の ​**\[Listener\]**​ ソースを最初のフローの下にドラッグして、2 番目のフローを作成します。 9. **\[Connector Configuration (コネクタ設定)\]**​ 項目を、最初の ​**Listener**​ 用に作成したグローバル要素である ​`HTTP_Listener_Config`​ に設定します。 10. **\[Path (パス)\]**​ 項目を ​`requests`​ に設定します。 11. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブを選択し、​**\[Allowed Methods (許可されるメソッド)\]**​ 項目を ​`POST`​ に設定します。 12. 別の ​**\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 13. **\[Message (メッセージ)\]**​ 項目を ​`flow 2`​ に設定します。 14. Mule アプリケーションを保存します。 15. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 16. ブラウザー拡張機能で、HTTP ​`GET`​ および ​`POST`​ 要求を ​`http://localhost:8081/mypath/requests`​ に送信します。 `GET`​ 要求応答は ​`flow 1`​ です。​`POST`​ 要求応答は ​`flow 2`​ です。 17. `DELETE`​ 要求を送信します。 `DELETE`​ は許可されないメソッドであるため、​`405 Method Not Allowed`​ メッセージが返されます。 ## [](#http-メソッドに基づいて要求を転送するための-xml)HTTP メソッドに基づいて要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # HTTP リスナーリファレンス HTTP リスナーは、HTTP サーバーをセットアップして、HTTP 要求を受信したらフローをトリガーできるようにするイベント取得元です。 ソースが受け入れるメソッド (GET、POST、メソッドのリストなど) や、要求を受け入れるパスを選択できるため、さまざまなフローを使用した要求の転送が可能になります。 要求がリスナーによって受け入れられると、対応するフローが HTTP 本文をペイロード、HTTP データを属性 (ヘッダー、クエリパラメーターなど) としてトリガーされます。 HTTP リスナーでは、フローの実行終了後、実行が成功かどうかに基づいて HTTP 応答をカスタマイズできます。たとえば、異なる状況コードを返すことができます。 ## [](#http-リスナー設定)HTTP リスナー設定 HTTP リスナーを使用するには、設定と対応する接続を宣言する必要があります。この宣言により、要求をリスンする HTTP サーバーが確立されます。 さらに、ベースパスを設定してすべてのリスナーに適用できます。 ```xml ``` ### [](#http-リスナー接続)HTTP リスナー接続 この接続では、サーバーがセットアップされるホストとポート、および使用するプロトコル (通常の接続には HTTP、TLS 接続には HTTPS) が定義されます。 HTTPS を介したセキュアな接続を可能にするには、接続に TLS コンテキストを定義し、サーバーのキーストアを指定する必要があります。相互認証が必要な場合は トラストストアも指定する必要があります。詳細は、​[「TLS Configuration」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​ (TLS 設定) を参照してください。 ```xml ```
=== プロジェクトを CloudHub にデプロイするには、ホストを ​0.0.0.0​ に設定する必要があります。これにより、マシン上のすべてのインターフェース上でリスンするための接続がセットアップされます。
テスト目的でローカルにデプロイする場合は、ホストを ​**localhost**​ に設定することをお勧めします。そうすることで、ローカルに生成された要求のみが受信され、アプリケーションが外部の脅威から攻撃を受けにくくなります。 === より高度な設定では、接続が永続的かどうかも定義できます。永続的ではない場合、タイムアウトが設定されます。 ## [](#http-listener-http-リスナー)HTTP Listener (HTTP リスナー) HTTP リスナーは、フロー内のイベント取得元として設定され、使用する設定と、要求をリスンするパスを参照する必要があります。 ```xml ``` HTTP 要求がリスナーと一致すると、その要求データを使用してフローがトリガーされます。本文はペイロードとして設定され、要求行からヘッダーまでその他すべてのデータは属性として反映されます。 トリガーされたフローが完了すると、HTTP リスナーはその結果を使用して適切な HTTP 応答を生成します。 ### [](#パス)パス HTTP リスナーのパスは、静的 (完全一致が必要) にすることも、機能のプレースホルダーにすることもできます。プレースホルダーは、ワイルドカード (​`*`​) (比較対象の一部または全部と一致) にすることも、パラメーター (​`{param}`​) (一部または全部と一致するだけでなく、URI パラメーターマップ上のそれらの値も取得) にすることもできます。 次のパスの例では、3 つのリスナーが ​`api/v1`​ を確立する設定をベースパスとして使用しています。 - `account/mulesoft/main-contact`​: パス要求 ​`http://awesome-company.com/api/v1/account/mulesoft/main-contact`​ とのみ完全一致します。 - `account/{accountId}/main-contact`​: 類似の構造を持つすべてのパス要求 (​`http://awesome-company.com/api/v1/account/salesforce/main-contact`​ など) と一致し、​`salesforce`​ を ​`accountId`​ の値として保存します。 - `account/{accountId}/*`​: `main-contact`​ とは異なるすべてのパス要求 (​`http://awesome-company.com/api/v1/account/mulesoft/users`​ など) と一致し、​`mulesoft`​ を ​`accountId`​ の値として保存します。
パスの末尾にワイルドカードを使用すると、未処理のリソースへの要求を取得してより適切なエラーメッセージを表示するのに役立ちます。
複数のリスナーが定義されている場合、要求は常に最も具体的なリスナーに転送されます。そのため、前の例では ​`accountId: mulesoft`​ とサフィックス ​`main-contact`​ を含む要求は最初のリスナーで処理され、異なる ​`accountId`​ 値を含む要求は、3 番目ではなく 2 番目のリスナーによって処理されます。 ### [](#メソッドについて)メソッドについて 要求は、受信した HTTP メソッドに基づいて転送することもできます。デフォルトでは、リスナーはすべてのメソッドを処理しますが、これらを選択したメソッド (カスタムメソッドを含む) に制限できます。次の例では、​`GET`​、​`POST`​、および ​`PUT`​ 要求は異なるフローに転送されます。 これは、データの表示を制限する場合に便利です。特定のユーザーにデータの表示を許可し、数人のユーザーにのみ変更を許可することができます。 ```xml ``` 複数のリスナーが定義されている場合、要求はメソッドと最初に一致したリスナーに転送されるため、デフォルトのリスナーは常に最後に定義する必要があります。 ### [](#http-要求から-mule-メッセージへ)HTTP 要求から Mule メッセージへ メソッド、要求パス、クエリ、および URI パラメーターなど HTTP 要求行からのデータとヘッダーはすべてトリガーされたフロー内で属性として使用できます。 一方、本文と ​`Content-Type`​ ヘッダーは、ペイロードとその MIME タイプのセットアップに使用されます。これにより、他のコンポーネントがペイロードの MIME タイプを検査できます。たとえば、DataWeave では HTTP ペイロードを使用するのに入力情報を必要としません。 さらに、​`X-Correlation-ID`​ または ​`MULE_CORRELATION_ID`​ (Mule 3 との相互運用目的) ヘッダーが存在する場合、トレーサビリティ目的でメッセージの相関関係 ID の設定に使用されます。 次の HTTP 要求を考えてみます。 ```text POST api/v1/account/salesforce/main-contact?overwrite=true¬ify=jane.doe¬ify=admin HTTP/1.1 Host: localhost:8081 Content-Type: application/json Content-Length: 166 X-Correlation-ID: 9cf32672-4f0b-4e8b-b988-40c13aae85b4 { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` メッセージの相関関係 ID は ​`9cf32672-4f0b-4e8b-b988-40c13aae85b4`​ で、そのペイロードは次の JSON です。 ```text { "name": "John", "surname": "Doe", "role": "Senior Vice President", "organization": "Marketing", "phone": 701222369, "email": "john.doe@salesforce.com" } ``` `#[payload.name ' ' payload.surname]`​ のような式は ​`John Doe`​ を返します。これは、DataWeave が正しく JSON データを解釈しているためです。 メッセージには以下のような属性があります。 - method: `POST` - listenerPath: `api/v1/account/{accountId}/main-contact` - requestPath: `api/v1/account/salesforce/main-contact` - relativePath: `account/salesforce/main-contact` - queryParams: エントリ ​`overwrite ⇒ true`​、​`notify ⇒ jane.doe`​、​`notify ⇒ admin`​ を含む、マルチマップ - uriParams: `accountId ⇒ salesforce`​ を含むマップ - headers: エントリ ​`host ⇒ localhost:8081`​、​`content-type ⇒ application/json`​、​`content-length ⇒ 166`​、​`x-correlation-id ⇒ 9cf32672-4f0b-4e8b-b988-40c13aae85b4`​ を含むマルチマップ
マルチマップは、特定のキーに対して複数の値が許可される点を除き、マップと似ています。単一値セレクター (​.​) の使用時は最初の値を返しますが、複数値セレクター (​.*​) の使用時はすべての値の取得が許可されます。
`#['Received a ' attributes.method ' request for account ' attributes.uriParams.accountId '.The following users are notified: ' ++ (attributes.queryParams.*notify joinBy ', ')]`​ のような式は ​`Received a POST request for account salesforce. The following users are notified: admin, jane.doe`​ を返します。 全 HTTP 要求属性の詳細なリストについては、​[HTTP ドキュメントリファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation)​を参照してください。 #### [](#マルチパートフォームの例)マルチパートフォームの例 次の例は、HTML フォームを受信したときの HTTP リスナーイベント取得元メッセージの操作を示します。 ```xml
How would you like to identify the logo?
Which is the logo file?
What is the main color in the logo?
``` フォーム送信時に生成された HTTP 要求はマルチパートになります。 ```text POST /api/v1/account/mulesoft/logo HTTP/1.1 Content-Type: multipart/form-data; boundary=489691234097965980223899 Host: localhost:8081 content-length: 34332 --489691234097965980223899 Content-Disposition: form-data; name="name" Corporate Logo --489691234097965980223899 Content-Disposition: form-data; name="logo"; filename="MuleSoft_logo.png" Content-Type: image/png .PNG . ... IHDR.......L......~..... pHYs...#...#.x.?v.. .IDATx....q.W.6.....~".N....t....t..#.....LD0T.CF0b..:.3......Q..@...q]U*y\c.... ....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`% .$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....V"H....`%.$....^6.......|..P.....IEND.B`. --489691234097965980223899 Content-Disposition: form-data; name="color" blue --489691234097965980223899-- ``` 各項目は ​`parts`​ オブジェクトを使用して名前または項目番号でアクセスできます。たとえば、2 つ目のパートは ​`payload.parts.logo`​ または ​`payload.parts[1]`​ でアクセスできます。後者は、名前が指定されない場合に便利です。 各パート内で、そのコンテンツとヘッダーにアクセスできます。たとえば、​`payload.parts.color.content`​ は ​`blue`​ を返し、​`payload.parts.logo.headers.'Content-Type'`​ は ​`application/png`​ を返します。 非常に一般的なシナリオは、パートのファイル名の取得です。そのため、​`Content-Disposition`​ ヘッダーは解析されて ​`payload.parts.logo.headers.'Content-Disposition'.filename`​ のような式を許可します。この場合は ​`MuleSoft_logo.png`​ が返されます。 マルチパートコンテンツの読み取りと書き込みについての詳細は、​[「DataWeave でサポートされる形式」](https://docs.mulesoft.com/dataweave/latest/dataweave-formats)​を参照してください。 ### [](#http-応答について)HTTP 応答について トリガーされたフローの実行が完了すると、結果が返されてリスナーは応答を提供できるようになります。フローが正常に実行された場合は通常の応答が返されますが、フローがエラーで終了した場合はエラー応答が返されます。 デフォルトでは、通常の応答は 200 状況コードと共に本文としてメッセージペイロードを返し、エラー応答は 500 状況コードと共に本文としてフローエラーの説明を返します。これらの応答は次の情報を指定することでカスタマイズできます。 - 状況コード - 理由を示す語句 - ヘッダーマルチマップ - 本文 DataWeave を使用して各パラメーターを生成でき、変数を使用してフローからデータを反映できます。 次の例では、アカウントのロゴを保存するためのエンドポイントが定義されます。 1. 正常に保存されると、​`201 Created`​ が ​`Corporate Logo has been stored as a MuleSoft logo`​ などの本文と一緒に返されます。 2. 保存に失敗すると、状況コードは ​`errorCode`​ 変数 (使用可能な場合) で定義されるか、デフォルトで ​`500`​ になります。 3. カスタムヘッダーも追加されます (​`X-Time`​)。 4. 本文 (​`Corporate Logo could not be stored`​ など) が返されます。 5. たとえば、ロゴの保存時に ​`CONNECTIVITY`​ エラーがある場合、返される状況コードは ​`504`​、他のエラーはすべて ​`500`​ になります。
エラー応答の理由を示す語句が定義されていないと、コネクタは状況コードに基づいて定義を試みます。そのため、上記で説明したシナリオでは ​Gateway Timeout​ または ​Internal Server Error​ が返されます。
```xml // 1 // 2 // 3 // 5 ``` #### [](#http-ストリーミングモード)HTTP ストリーミングモード 応答本文の処理時、HTTP Connector は、送信するデータのサイズが明らかではない場合はデータの種類を考慮し、​`chunked`​ エンコードを使用します (サイズ情報のないストリームとみなす)。この動作は、​`responseStreamingMode`​ オプションを使用して変更できます。 - AUTO (デフォルト): 本文のサイズが定義されている場合、リスナーは ​`Content-Length`​ エンコードを使用します。それ以外の場合は ​`Transfer-Encoding: chunked`​ を使用します。 - ALWAYS (常時): 存在するサイズデータに関係なく ​`Transfer-Encoding: chunked`​ を使用します。 - NEVER (なし): `Content-Length`​ エンコードを使用し、必要に応じてストリームをコンシュームしてデータサイズを判定します。 次の例では、アカウントの主連絡先は常に ​`Content-Length`​ エンコードを使用して返されます。 ```xml ``` ## [](#関連情報)関連情報 - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation) - [HTTP Connector トラブルシューティングガイド](https://docs.mulesoft.com/jp/http-connector/1.5/http-troubleshooting) - [DataWeave 形式](https://docs.mulesoft.com/dataweave/latest/dataweave-formats) - [TLS 設定](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration) - [HTTP 要求属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation#HttpRequestAttributes) - [HTTP 応答属性リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation#HttpResponseAttributes) # HTTP 要求の受信 HTTP 用 Anypoint Connector (HTTP Connector) には、HTTP または HTTPS プロトコルで要求を受信する Listener 操作があります。要求や他のインシデントを受信すると、Mule イベントを開始します。このイベントがリクエストボディをメッセージペイロードとしてフローの次の要素に渡します。ペイロードに加え、Mule メッセージには次の属性があります。HttpRequestAttributes 構文を使用してヘッダー、クエリパラメーターなどの属性を参照できます。 HTTP 要求を設定するときに、Content-Type ヘッダーを設定しないでください。Mule Runtime Engine (Mule) は、メッセージペイロードからヘッダーを自動的に推定します。​`multipart/form-data`​ 形式のペイロードで Content-Type ヘッダーを設定すると、HTTP 要求は 400 エラー状況で失敗します。 ## [](#http-要求のマッピング)HTTP 要求のマッピング 次の図は、要求に関する情報へのアクセス方法を説明しています。 ![HTTP 応答と Mule イベントのマッピング](/mulesoft/current/ja-jp/http-connector/1.5/_images/request-mule-msg-map.png) この情報にアクセスするには、DataWeave 構文を使用します。 ## [](#http-応答)HTTP 応答 要求への応答には次の情報を含めることができます。 - 状況コード - 理由を示す語句 - 本文 - ヘッダー リスナーのフローの実行が成功または失敗した場合の応答を設定できます。成功した場合、デフォルトではペイロードが本文になり、状況コードは 200 になります。失敗した場合、デフォルトではエラーの説明が本文になり、状況コードは 500 になります。 ## [](#要求と応答の保護)要求と応答の保護 HTTP または HTTPS Listener 操作で最もよく設定される HTTP メソッドは GET です。HTTP Listener のデフォルトでは、すべての HTTP メソッドが許可されます。許可される HTTP メソッドを各自のアプリケーションのメソッドのみに制限するには、ベストプラクティスに従ってください。 \[Advanced (詳細)\] で \[Allowed Methods (許可されるメソッド)\] を設定します。 ![allowed methods](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-allowed-methods.png) ## [](#キーストアとトラストストアを使用した-tls-設定)キーストアとトラストストアを使用した TLS 設定 キーストアを証明書と共に提供することで、Transport Layer Security (TLS) を使用して HTTPS を設定できます。トラストストアを指定することで双方向認証を有効にすることもできます。詳細は、​[「キーストアとトラストストアを使用した TLS の設定」](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)​を参照してください。 ## [](#関連情報)関連情報 - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-connector-xml-reference) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation) # HTTP 要求の認証 HTTP 要求に設定する認証を使用します。「​[\[OAuth2 - Authorization Code\]](<#OAuth2 - Authorization Code>)​」で説明されている GitHub OAuth2 サーバーなど、認証を必要とするサービスに、Mule Runtime (Mule) アプリケーションで HTTP Connector を使用して要求を送信する場合、認証を使用できます。この場合、Mule アプリケーションがクライアントです。一方で、不正なアクセスからの要求を API やアプリケーションで受信しないようにするには、​[外部プロバイダーを使用した OAuth 2.0 アクセストークンの適用](#api-manager::external-oauth-2.0-token-validation-policy.adoc)​ポリシーなどの API Manager ポリシーを使用します。 HTTP Request Connector は、Mule クライアントアプリケーションと、次のいずれかの種別の認証が必要なサービスとの接続をサポートします。 - [\[Basic Authentication\]](<#Basic Authentication>) - [\[NTLM Authentication\]](<#NTLM Authentication>) - [\[Digest Authentication\]](<#Digest Authentication>) - [\[OAuth2 - Authorization Code\]](<#OAuth2 - Authorization Code>) - [OAuth2 - クライアントログイン情報](#oauth2cc) 要求の対象である HTTP サービスで認証が必要な場合、必要なログイン情報を \[HTTP Request Configuration (HTTP 要求設定)\] グローバル要素で指定します。Mule は、要求の認証ヘッダーに設定されたログイン情報を使用します。 トランスポートレイヤーセキュリティ (TLS) を設定して OAuth ログイン情報を暗号化することもできます。 Anypoint Studio の HTTP グローバル要素設定の \[Authentication (認証)\] ドロップダウンメニューに \[Expression (式)\] が表示されますが、これは認証方式ではないため、認証方式として使用しないでください。 ## [](#http-xml-認証のセットアップ)HTTP XML 認証のセットアップ Anypoint Studio (Studio) を使用している場合、HTTP Request Connector 用の ​**\[Authentication (認証)\]**​ 項目を使用して、認証種別を選択できます。 HTTP Connector の認証の XML 値を次に示します。
認証種別 XML 値

基本認証

<http:authentication >
  <http:basic-authentication
  username="UN" password="PW"/>
</http:authentication>

NTLM 認証

<http:authentication >
  <http:ntlm-authentication
  domain="DM" workstation="WS"
  username="UN" password="PW" />
</http:authentication>

ダイジェスト認証

<http:authentication >
  <http:digest-authentication
  username="UN" password="PW"/>
</http:authentication>
また、Studio で OAuth コンポーネントの操作をキャンバスに追加し、この操作で次の連動関係をプロジェクトの pom.xml ファイルに自動的に追加することができます。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` OAuth コンポーネントの操作の使用方法については、まず「​[\[Create the Mule Client App\]](<#Create the Mule Client App>)​」を参照してください。 ## [](#基本認証)基本認証 この例では、Studio で、ユーザー情報への要求を [GitHub API](https://developer.github.com/v3)​ に送信するアプリケーションを作成して実行します。Github API はユーザー情報の要求を ​`https://api.github.com/user`​ へのポート 443 で受け入れます。 基本認証要件を満たすため、アプリケーションは GitHub のユーザー名とパスワードを指定します。これらのログイン情報を指定するには、HTTP Request Connector を設定します。 この例では、GitHub アカウントが必要です。 GitHub API をコールするには、まず、次のように HTTP Listener Connector をセットアップします。 ### [](#基本認証-studio-ビジュアルエディター)基本認証 - Studio ビジュアルエディター 1. Studio で、​**\[File (ファイル)\]**​ > ​**\[New (新規)\]**​ > ​**\[Mule Project (Mule プロジェクト)\]**​ を選択し、次のパラメーターを設定して、新規 Mule プロジェクトを作成します。 - **Project Name (プロジェクト名)**​: `myproject` - **Runtime (ランタイム)**​: 選択するか、デフォルトの ​`Mule Server 4.1.x`​ 以降を受け入れます。 2. \[Mule Palette (Mule パレット)\] で、​**\[HTTP\]**​ を選択し、​**\[Listener\]**​ 操作をクリックしてキャンバスまでドラッグします。 3. リスナーのプロパティエディターで ​**\[Path (パス)\]**​ を ​`/`​ (スラッシュ) に設定します。 4. **\[Connector Configuration (コネクタ設定)\]**​ で緑色のプラスアイコンをクリックします。 **\[HTTP Listener config (HTTP リスナー設定)\]**​ ダイアログが表示されます。 5. \[OK\] をクリックして、次のオプションを受け入れます。 - **Name (名前)**​: `HTTP_Listener_config` - **Protocol (プロトコル)**​: `HTTP` - **Host (ホスト)**​: `0.0.0.0` - **Port (ポート)**​: `8081` 6. \[OK\] をクリックします。 7. プロパティエディターで、​**\[Advanced (詳細)\]**​ タブをクリックし、​**\[Allowed Methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 8. 変更を保存します。 エラーインジケーターが消えます。 ### [](#基本認証-http-request-connector-の設定)基本認証 - HTTP Request Connector の設定 1. **\[HTTP\]**​ > ​**\[Request\]**​ 操作を \[Mule Palette (Mule パレット)\] から Studio フローの \[Process (プロセス)\] 領域にドラッグします。 2. プロパティエディターの ​**\[Connector Configuration (コネクタ設定)\]**​ で、緑色のプラスアイコンをクリックします。 **\[HTTP Request configuration (HTTP 要求設定)\]**​ ダイアログが表示されます。 3. 次のオプションを設定します。 - **Name (名前)**​: `HTTP_Request_configuration`​。 - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `api.github.com` - **Port (ポート)**​: `443` 4. **\[Authentication (認証)\]**​ 項目で、​**\[Basic authentication (基本認証)\]**​ プロトコルを選択します。 5. \[Username (ユーザー名)\] に GitHub ユーザー名を入力します。 6. \[Password (パスワード)\] に GitHub パスワードまたは [個人アクセストークン](https://github.com/settings/tokens)​を入力します。 7. **\[Preemptive (プリエンプティブ)\]**​ チェックボックスを ​**\[True (Default) (True (デフォルト))\]**​ のままにします。 プリエンプティブオプションでは、サーバーからの要求メッセージを待たずにユーザー名とパスワードが渡されます。 8. **\[OK\]**​ をクリックします。 9. プロパティエディターで、HTTP Request Connector の次のオプションを設定します。 - **Method (メソッド)**​: ドロップダウンから \[GET\] を選択します。 - **Path (パス)**​: `/user` 10. 変更を保存します。 ### [](#基本認証-json-形式の出力の作成)基本認証 - JSON 形式の出力の作成 1. \[Mule Palette (Mule パレット)\] で、「transform」を検索し、​**\[Core (コア)\] > \[Transform Message\]**​ をパレットから Request コンポーネントの右にドラッグします。 2. プロパティエディターで、ペイロードの出力を次のように変更します。 ```dataweave %dw 2.0 output application/json --- payload ``` ### [](#基本認証-アプリケーションの実行)基本認証 - アプリケーションの実行 1. **Package Explorer**​ でプロジェクト名を右クリックし、​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 コンソールにアプリケーションがデプロイされたことが表示されます。 2. ブラウザーで URL ​`http://localhost:8081/`​ を使用してアプリケーションをコールします。 GitHub API がユーザー情報を返します。 ```json { "login":"kahn", "id":16xxx343, "avatar_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"` ... } ``` ブラウザーに ​`HTTP GET on resource 'https://api.github.com:443/user' failed: unauthorized (401)`​ が表示されている場合、GitHub パスワードを指定する代わりに [個人アクセストークン](https://github.com/settings/tokens)​を使用する必要があります。新しいトークンを生成する場合、​**\[user\]**​ > ​**\[read:user\]**​ スコープのみが必要です。 ### [](#基本認証-xml-エディター)基本認証 - XML エディター ```xml ...
``` ## [](#ntlm-認証)NTLM 認証 NT LAN Manager (NTLM) 認証で、以前の Microsoft 製品である Microsoft LAN Manager (LANMAN) の認証プロトコルが置き換えられました。 この例では、指定されたユーザー名とパスワードを含む「認証」ヘッダーが追加された GET 要求が ​`http://www.example.com/test`​ に送信されます。 ### [](#ntlm-認証-studio-ビジュアルエディター)NTLM 認証 - Studio ビジュアルエディター 1. **\[HTTP\]**​ > ​**\[Request\]**​ 操作を \[Mule Palette (Mule パレット)\] から Studio フローの \[Process (プロセス)\] 領域にドラッグします。この操作は HTTP Request Connector と呼ばれます。 2. プロパティエディターの ​**\[Connector Configuration (コネクタ設定)\]**​ で、緑色のプラスアイコンをクリックします。 3. **\[Authentication (認証)\]**​ タブを選択します。 4. \[Protocol (プロトコル)\] ドロップダウンメニューで、​**\[Ntlm authentication (NTLM 認証)\]**​ を選択します。 5. ユーザー名とパスワード (またはそれらが含まれるプロパティへの参照) を指定し、必要に応じてドメインとワークステーションも指定します。 ### [](#ntlm-認証-xml-エディター)NTLM 認証 - XML エディター NTLM 認証は基本認証と同様に設定され、子要素の属性にユーザー名とパスワードを指定します。違いは、子要素に異なる名前「ntlm-authentication」が設定されることと、必要に応じてドメインおよびワークステーション属性を追加できることだけです。 ```xml ... ``` ## [](#ダイジェスト認証)ダイジェスト認証 1. **\[HTTP\]**​ > ​**\[Request\]**​ 操作を \[Mule Palette (Mule パレット)\] から Studio フローの \[Process (プロセス)\] 領域にドラッグします。この操作は HTTP Request Connector と呼ばれます。 2. プロパティエディターの ​**\[Connector Configuration (コネクタ設定)\]**​ で、緑色のプラスアイコンをクリックします。 3. **\[Authentication (認証)\]**​ タブを選択します。 4. \[Protocol (プロトコル)\] ドロップダウンメニューで、​**\[Digest authentication (ダイジェスト認証)\]**​ を選択します。 5. ユーザー名とパスワード (またはそれらが含まれるプロパティへの参照) を指定します。 ### [](#ダイジェスト認証-xml-エディター)ダイジェスト認証 - XML エディター ダイジェスト認証は基本認証と同様に設定され、子要素の属性にユーザー名とパスワードを指定します。違いは、子要素に異なる名前「digest-authentication」が設定されることだけです。 ```text ... ... ``` この例では、指定されたユーザー名とパスワードを含む「認証」ヘッダーが追加された GET 要求が ​`http://www.example.com/test`​ に送信されます。 ## [](#oauth2-認証コード)OAuth2 - 認証コード OAuth2 - 認証コードでは、OAuth 2.0 認証コード付与種別を設定します。OAuth 認証サーバーには、OAuth で保護されるリソースが保持されています。たとえば、GitHub API へのコールを [OAuth を使用する GitHub サーバー](https://developer.github.com/v3/oauth/)​で認証できます。このセクションの例は、Mule クライアントアプリケーションを作成して GitHub OAuth 認証サーバー上の保護されたリソースである GitHub ユーザーデータにアクセスする方法を示しています。この例では次のことを行います。 - 認証のセットアップ - Mule クライアントアプリケーションの作成 - Mule クライアントアプリケーションの実行 この例では、GitHub アカウントが必要です。 ### [](#認証のセットアップ)認証のセットアップ 1. クライアントアプリケーションを認証サーバーに登録します。認証サーバーが Mule クライアントアプリケーションにクライアント ID とクライアントシークレットを割り当てます。アプリケーションは、後でこれらのログイン情報を使用して認証サーバーに身元を証明します。登録時には、Mule アプリケーションホームページへの URL とアプリケーションコールバック URL も指定します。 ![authentication in http requests 75e03](/mulesoft/current/ja-jp/http-connector/1.5/_images/authentication-in-http-requests-75e03.png) 2. GitHub にログインします。 3. GitHub の \[Personal settings (個人設定)\] で、 [アプリケーションを登録](https://github.com/settings/applications/new)​します。​**\[Register a new OAuth application (新規 OAuth アプリケーションの登録)\]**​ ページで、次のテキストボックスに入力します。 - **Application name (アプリケーション名)**​: 任意のアプリケーション名を入力します。この例では、​`oauth-grant-code`​ を使用します。 - **Homepage URL (ホームページ URL)**​: この例では、​`http://localhost:8082`​ を使用します。 - **Authorization callback URL (認証コールバック URL)**​: この例では、​`http://localhost:8082/callback`​ を使用します。 - **\[Register application (アプリケーションを登録)\]**​ をクリックします。 GitHub で、登録されたアプリケーションのページが ​`https://github.com/settings/applications/`​ に作成されます。このページには、GitHub で割り当てられたクライアント ID とクライアントシークレットが含まれます。 ### [](#mule-クライアントアプリケーションの作成)Mule クライアントアプリケーションの作成 GitHub で割り当てられたクライアント ID とクライアントシークレットを使用して GitHub OAuth2 認証サーバー上にあるユーザーデータにアクセスする Mule クライアントアプリケーションを作成できます。サンプルは、HTTP Listener Connector、HTTP Request Connector、およびプレーンテキストを JSON に変換する DataWeave (Transform) コンポーネントで構成されます。HTTP Request Connector で、認証サーバーへのアクセスを設定します。 以下の手順で、次のようないくつかのオプションを設定できます。 - ​**Local authorization URL (ローカル認証 URL)** 受信要求をリスンするアプリケーションに URL を定義します。 - **Authorization URL (認証 URL)** [GitHub で提供される](https://developer.github.com/v3/oauth/#web-application-flow)​この URL により、Mule クライアントアプリケーションからのユーザー要求は GitHub 認証サーバーの認証 URL にリダイレクトされます。 - **Token URL (トークン URL)** Mule クライアントアプリケーションはトークンを、Mule クライアントアプリケーションに設定された​**トークン URL**​ に送信します。 以下のセクションでは、Mule クライアントアプリケーションに GitHub 認証サーバーへのアクセスを設定する手順について説明します。 ### [](#oauth-2-認証-studio-ビジュアルエディター)OAuth 2 認証 - Studio ビジュアルエディター 1. **\[HTTP\]**​ > ​**\[Request\]**​ 操作を \[Mule Palette (Mule パレット)\] から Studio フローの \[Process (プロセス)\] 領域にドラッグします。この操作は HTTP Request Connector と呼ばれます。 2. \[Package Explorer\] を展開し、​`pom.xml`​ ファイルをダブルクリックします。 3. ``​ セクションの最後で、​``​ ステートメントの前に次のステートメントを追加し、HTTP Request Connector の OAuth オプションを有効化します。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` 4. プロパティエディターの ​**\[Connector Configuration (コネクタ設定)\]**​ で、緑色のプラスアイコンをクリックします (または、設定をすでに作成している場合は \[編集\] アイコンをクリックします)。 5. **\[Authentication (認証)\]**​ 項目を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 6. 次の必須項目を入力します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` OAuth 認証サーバーはこの URL を使用して認証コードを Mule サーバーに提供します。これで、Mule サーバーはアクセストークンを取得できます。これは、ローカルのアドレスではなく、外部に表示できるコールバックアドレスである必要があります。 - **Local authorization url (ローカル認証 URL)**​: `https://localhost:8082/login` アカウントに対してアプリケーションへのアクセスを認証して許可できるようにします。 - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` ユーザーに対してアプリケーションを認証します。 - **Client id (クライアント ID)**​: アプリケーション登録時に GitHub から指定されたクライアント ID を入力します。 - **Client secret (クライアントシークレット)**​: アプリケーション登録時に GitHub から指定されたクライアントシークレットを入力します。 - Token url (トークン URL): `https://github.com/login/oauth/access_token` 次の省略可能な項目も設定できます。 - **Local callback url (ローカルコールバック URL)**​: `http://localhost:8082/callback` この値は、GitHub にアプリケーションを登録したときに ​**\[External callback URL (外部コールバック URL)\]**​ に設定した値と同じです。これは、リモートホストから ​`externalCallbackUrl`​ に送信された要求を受信するために Mule が作成するサーバーの設定です。外部と内部のコールバック URL は同じです。一方は、ランタイムでサーバーを作成するための設定であり (内部)、もう一方はそのサーバーがインターネットでどのように表示されるかを示します (外部)。 - **Response Access Token (応答アクセストークン)**​: `#[payload.access_token]` この DataWeave 式は、​[アクセストークンを抽出します](#extracting-parameters-from-the-token-url-response)​。 - **Response Refresh Token (応答更新トークン)**​: `#[payload.access_token]` 使用しているプロバイダーが更新トークンを送信する場合は、更新トークン用に類似の DataWeave 式 (​`#[payload.refresh_token]`​) を使用できます。ただし、この例では GitHub が実際に更新トークンを使用することはありません。 ![authentication in http requests c2070](/mulesoft/current/ja-jp/http-connector/1.5/_images/authentication-in-http-requests-c2070.png) 7. \[OK\] をクリックします。 8. 変更を保存します。 ### [](#oauth-2-認証-xml-エディター)OAuth 2 認証 - XML エディター コネクタのグローバル設定内に、​`oauth:authorization-code-grant-type`​ 子要素を含む ​` ブロックを追加します。 次の値を含めます。 - `clientId`​ と ​`clientSecret`​。 アプリケーションの登録時に GitHub から受信したクライアント ID とクライアントシークレットを使用します。 - リソースオーナー (RO) からアクセス権が付与されたら、GitHub 認証サーバーがアクセストークンを送信する先の ​`localCallbackUrl`​。 GitHub へのアプリケーション登録時にリダイレクト URL を指定するように要求された場合、この値はそこで指定した値と一致する必要があります。 次の属性を追加します。 - GitHub 認証サーバーが公開する ​`authorizationUrl` - `localauthorizationUrl` 次の属性も追加します。 - GitHub 認証サーバーが公開する ​`tokenUrl` ```xml ```
localAuthorizationUrl​ 値は、GitHub にアプリケーションを登録したときに ​[External callback URL (外部コールバック URL)]​ に設定した値と同じです。これは、リモートホストから ​externalCallbackUrl​ に送信された要求を受信するために Mule が作成するサーバーの設定です。外部と内部のコールバック URL は同じです。一方は、ランタイムでサーバーを作成するための設定であり (内部)、もう一方はそのサーバーがインターネットでどのように表示されるかを示します (外部)。
### [](#oauth-2-認証-mule-クライアントアプリケーションの実行)OAuth 2 認証 - Mule クライアントアプリケーションの実行 Mule クライアントアプリケーションをデプロイした後、このセクションの手順に従ってアプリケーションを実行します。この手順では、次のアクションを実行します。 - GitHub アクセスへの HTTP 要求を Mule クライアントアプリケーションに送信する (次の図の 1)。 クライアントアプリケーションは要求を GitHub 認証サーバーにリダイレクトします (図の 2)。GitHub は、ログインと登録したクライアントアプリケーションの認証を促します。 - GitHub ログインアカウントのログイン情報を使用してログインし、アプリケーションを認証する (図の 3 ~ 4)。 応答で、GitHub 認証サーバーが​**アクセストークン**​を返します (図の 5)。 ![authentication in http requests 42011](/mulesoft/current/ja-jp/http-connector/1.5/_images/authentication-in-http-requests-42011.png) - アクセストークンを使用して保護されたユーザーデータを要求する (次の図の 1 ~ 2)。 クライアントアプリケーションは GitHub 認証サーバーからユーザーデータを取得します (図の 3)。 ![authentication in http requests 278ae](/mulesoft/current/ja-jp/http-connector/1.5/_images/authentication-in-http-requests-278ae.png) Mule クライアントアプリケーションを実行して GitHub ユーザーデータを取得する手順は、次のとおりです。 アクセストークンの期限が切れる前に次の手順を実行します。 1. プロジェクトエクスプローラーでプロジェクト名を右クリックし、​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 コンソールにアプリケーションがデプロイされたことが表示されます。 2. ブラウザーで、ローカル認証 URL ​`http://localhost:8082/login`​ を入力して、 [OAuth2 ダンス](https://tools.ietf.org/html/rfc6749#section-4.1)​を開始します。 GitHub がログインを促します。 3. GitHub のユーザー名とパスワードを使用してログインします。 GitHub が、登録されたアプリケーションの実行を認証するように促します。 ![authentication in http requests 96a5d](/mulesoft/current/ja-jp/http-connector/1.5/_images/authentication-in-http-requests-96a5d.png) 4. **\[Authorize application (アプリケーションを認証)\]**​ をクリックします。 OAuth2 ダンスの開始に使用したブラウザーに、本文テキストとして ​`Successfully retrieved access token`​ が表示されます。 トークンを返してデータを取得するには、ブラウザーに次の URL を入力します。 `http://localhost:8081/github` GitHub API がユーザー情報を返します。 { "login":"kahn", "id":16xxx343,"avatar\_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"\` ... } ### [](#oauth-2-認証-スコープの使用)OAuth 2 認証 - スコープの使用 必要に応じて、Mule クライアントアプリケーションに Scopes (スコープ) 属性を設定できますが、この GitHub の例では必要ありません。スコープを設定するには、認証サーバーで使用できる OAuth スコープのカンマ区切りリストを定義します。OAuth のスコープはセキュリティロールに似ています。 ### [](#認証-url-への-oauth2-カスタムパラメーターの送信)認証 URL への OAuth2 カスタムパラメーターの送信 OAuth 実装で、OAuth 認証サーバー (OAS) の認証 URL をコールするときに、追加のクエリパラメーターの送信を要求または許可する場合があります。 ### [](#oauth-2-カスタムパラメーター-studio-ビジュアルエディター)OAuth 2 カスタムパラメーター - Studio ビジュアルエディター 1. Studio で、OAuth 認証コード付与種別を使用する \[HTTP Request Configuration (HTTP 要求設定)\] グローバル要素を選択します。 2. **\[Authentication (認証)\]**​ で ​**\[Authorization code grant type (認証コード許可種別)\]**​ を選択します。このオプションが表示されていない場合、OAuth オプションを有効にするように ​[pom.xml ファイルを設定します](#setpomfile)​。 3. 前の例と同じ項目に入力します。 - External Callback URL (外部コールバック URL) = ​`http://myapp.mycompany.com:8082/callback` - Local Authorization URL (ローカル認証 URL) = ​`http://localhost:8082/login` - AuthorizationUrl = ​`https://github.com/login/oauth/authorize` - client ID (クライアント ID) = GitHub アカウントからクライアント ID を取得します - client Secret (クライアントシークレット) = GitHub アカウントからクライアントシークレットを取得します - Token URL (トークン URL) = ​`https://github.com/login/oauth/access_token`
Local Authorization URL​ 値は、GitHub にアプリケーションを登録したときに ​External callback URL​ に設定した値と同じです。これは、リモートホストから ​externalCallbackUrl​ に送信された要求を受信するために Mule が作成するサーバーの設定です。外部と内部のコールバック URL は同じです。一方は、ランタイムでサーバーを作成するための設定であり (内部)、もう一方はそのサーバーがインターネットでどのように表示されるかを示します (外部)。
4. `[Custom Parameters (カスタムパラメーター)]`​ で、​`[Edit inline (インライン編集)]`​ を選択します。プラス (+) ボタンを必要な回数クリックして、各カスタムパラメーターの名前と値を定義します。 ### [](#oauth-2-カスタムパラメーター-xml-エディター)OAuth 2 カスタムパラメーター - XML エディター この例には、この API 固有のパラメーターを定義する 2 つの ​`oauth:custom-parameter`​ 子要素が含まれます。 ```xml ``` ### [](#リダイレクト-uri-の上書き)リダイレクト URI の上書き このセクションでは、リダイレクト URI (外部 ​`redirect_uri`​) を上書きできます。 [OAuth 2.0 仕様](https://tools.ietf.org/html/rfc6749)​には、リダイレクトの宛先サイトからリダイレクト URI をチェックする方法が説明されています。OAuth 認証サーバーはこの URL を使用して、アクセストークンを取得するための認証コードを Mule サーバーに提供します。この URL を指定する場合、Mule はその URL にエンドポイントを作成して認証コードを保存します。ただし、手動で認証コードを抽出するためのエンドポイントがすでに登録されていている場合は除きます。 \[External Callback URL (外部コールバック URL)\] 属性 (XML の ​`externalCallbackUrl`​) を設定して、外部リダイレクト URI を設定します。 `externalCallbackUrl`​ を使用すると、アプリケーションを CloudHub にデプロイする場合などは特に便利です。認証を設定するときに、必要に応じて ​`localCallbackUrl`​ 属性も設定することができます。 たとえば、​`localCallbackUrl`​ は、​[前の例](#create-the-mule-client-app)​では ​`http://localhost:8082/callback`​ です。 CloudHub のエンドポイントを作成するために、Mule は、CloudHub のエンドポイントを別の形式で作成する必要があります。次に例を示します。 `https://.cloudhub.io/` Mule に、正しい形式で CloudHub のエンドポイントを作成するように指示するには、​`oauth:authorization-code-grant-type`​ 設定に ​`externalCallbackUrl`​ 属性を含めます。 ### [](#extracting-parameters-from-the-token-url-response)トークン URL 応答からのパラメーターの抽出 認証サーバーから認証コードを取得したら、OAuth ダンスがサーバーのトークン URL にアクセストークンの受信を要求します。 トークン URL への要求に対する応答の形式は、OAuth 仕様では定義されていません。したがって、実装ごとに異なる応答形式が返されることがあります。デフォルトでは、Mule は応答が JSON 形式であることを期待します。この場合、その要素の名前が次のようであれば、HTTP 要求は必要な情報の抽出方法を判断できます。 - **Response access token (応答アクセストークン)**​: JSON 項目の名前が ​`access_token` - **Response refresh token (応答更新トークン)**​: JSON 項目の名前が ​`refresh_token` - **Response expires in (応答有効期限)**​: JSON 項目の名前が ​`expires_in` 応答が JSON 形式の場合、パラメーターは自動的に抽出されるため、前の GitHub の例のように、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して、トークン URL への要求に対する応答内のこれらの値を参照できます。 応答が JSON 形式ではない場合、最初にコネクタを設定して、これらの値の抽出方法がわかるようにする必要があります。次の例では、コネクタは応答の ​`Content-Type`​ が ​`application/x-www-form-urlencoded`​ であることを期待するため、応答の本文はペイロードのマッピングに変換されます。​`#[payload.access_token]`​ (​**Response access token (応答アクセストークン)**​ と ​**Response refresh token (応答更新トークン)**​ のデフォルト値) など、DataWeave 式を使用してマッピングから値を抽出します。 ### [](#パラメーターの抽出-studio-ビジュアルエディター)パラメーターの抽出 - Studio ビジュアルエディター **\[Authentication (認証)\]**​ タブで、​**OAuth2 - 認証コード**​の以下のデフォルトオプションを確認します。 - **Response Access Token (応答アクセストークン)**​: `#[payload.access_token]` - **Response Refresh Token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response Expires In (応答有効期限)**​: `#[payload.expires_in]` ### [](#パラメーターの抽出-xml-エディター)パラメーターの抽出 - XML エディター この例には、この API 固有のパラメーターを定義する 2 つの ​`oauth:custom-parameter`​ 子要素が含まれます。 ```xml ``` ### [](#更新アクセストークンのカスタマイズ)更新アクセストークンのカスタマイズ トークン URL から取得するアクセストークンは、そのうち期限切れになります。トークンの有効期間の長さは、認証サーバーの実装に応じて異なります。アクセストークンの期限が切れたら、プロセス全体をもう一度実行するのではなく、トークン URL 応答で提供される​**更新アクセストークン**​を使用して、新しいアクセストークンを取得できます。 Mule では、このユースケースが自動的に処理されます。そのためデフォルトでは、HTTP 要求が実行され、応答の状況コードが 403 の場合、Mule はトークン URL をコールして新しいアクセストークンを取得します。 Mule がいつこれらの要求のいずれかを実行し、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して新しいアクセストークンを取得するかをカスタマイズできます。式は HTTP 要求コールの応答に対して評価されます。 ### [](#更新-studio-ビジュアルエディター)更新 - Studio ビジュアルエディター **\[Authentication (認証)\]**​ > ​**\[Authorization code grant type (認証コード許可種別)\]**​ で、​**\[Request Token When (トークンを要求するタイミング)\]**​ を ​**\[Expression (式)\]**​ に設定し、その横にある項目に DataWeave 式 (​`#[payload.response.status == 'unauthorized']`​) を設定します。 ### [](#更新-xml-エディター)更新 - XML エディター 新しいアクセストークンを取得するためのコールをいつ実行するかを設定するには、​`oauth:authorization-code-grant-type`​ 要素の属性 ​`refreshTokenWhen`​ に対する DataWeave 式を設定します。 ```xml ``` 要求の認証が失敗したら、応答には名前が ​**status**​ で値が ​`‘unauthorized’`​ の XML ノードが含まれます。前の例では、DataWeave 式がその条件を評価します。true と評価すると、Mule は要求をトークン URL に送信して新しいアクセストークンを取得します。 ### [](#oauth-認証コードでの-https-の使用)OAuth 認証コードでの HTTPS の使用 本番環境のように、認証サーバーとの通信に HTTPS を使用する必要がある場合、HTTPS エンコードをすべての要求 (以下に対する要求を含む) の OAuth ログイン情報に適用します。 - ローカル認証 URL - 認証 URL - リダイレクト URL - トークン URL HTTP Request Connector の認証設定に TLS コンテキストを指定することで、これがすべての要求で処理されます。 ### [](#https-studio-ビジュアルエディター)HTTPS - Studio ビジュアルエディター 1. **\[TLS Configuration (TLS 設定)\]**​ 項目で、​**\[Global Reference (グローバル参照)\]**​ を選択します。 2. 項目の横にある緑のプラス記号をクリックして新規 TLS コンテキストを作成します。 3. トラストストアおよびキーストア設定をセットアップし、\[OK\] をクリックして保存します。 **\[TLS Configuration (TLS 設定)\]**​ 項目で、OAuth ログイン情報をエンコードします。 ### [](#https-xml-エディター)HTTPS - XML エディター `tlsContext`​ を設定して TLS コンテキスト要素を参照し、この要素にトラストストアとキーストアのログイン情報を指定します。 ```xml ``` `oauth:authorization-code-grant-type`​ 要素の ​`tlsContextFactory`​ 属性は、OAuth ログイン情報をエンコードする ​` ``` Mule アプリケーションは、デプロイ時にアクセストークンの取得を試みます。アプリケーションがアクセストークンを取得できない場合、デプロイメントで失敗します。 ### [](#oauth2-トークン-url-応答からのパラメーターの抽出)OAuth2 - トークン URL 応答からのパラメーターの抽出 認証コードに適用されるのと同じ動作をクライアントログイン情報付与種別に適用できます。 ### [](#oauth2-更新アクセストークンのカスタマイズ)OAuth2 - 更新アクセストークンのカスタマイズ 認証コードに適用されるのと同じ動作をクライアントログイン情報付与種別に適用できます。 ## [](#トークンマネージャー設定)トークンマネージャー設定 クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャー設定を使用します。 ### [](#トークンマネージャー設定-studio-ビジュアルエディター)トークンマネージャー設定 - Studio ビジュアルエディター 1. Studio で、OAuth 認証コード付与種別を使用する \[HTTP Request Configuration (HTTP 要求設定)\] グローバル要素を選択します。 2. **\[Authentication (認証)\]**​ で ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ を選択します。 3. フォームの \[Advanced (詳細)\] セクションで、​**\[Token Manager (トークンマネージャー)\]**​ を ​**\[Global Reference (グローバル参照)\]**​ に設定し、​**\[Token Manager (トークンマネージャー)\]**​ の横にある緑のプラス記号をクリックして新しいトークンマネージャーを作成します。 4. トークンマネージャーをオブジェクトストアへの参照として割り当てます。 ### [](#トークンマネージャー設定-xml-エディター)トークンマネージャー設定 - XML エディター tokenManager-ref 属性は、設定の token-manager-config 要素を参照する必要があります。 ```xml ``` ### [](#トークンマネージャー-認証へのアクセス)トークンマネージャー - 認証へのアクセス トークンマネージャーを認証許可種別に関連付けたら (以下の例では認証コードに関連付け)、OAuth Module で提供される操作をフロー内の任意の場所で使用して、OAuth 認証からの情報にアクセスできます。 **RO が単一**​の​**クライアントログイン情報**​または認証コードを使用している場合、フローでは次の操作を使用します。 ```xml ``` この操作では、トークンマネージャーから OAuth 認証情報にアクセスできます。 - `tokenManager`​: 設定でのトークンマネージャーの名前 **RO が複数**​の認証コードを使用している場合、次の操作を使用します。 ```xml ``` この操作では、トークンマネージャーから OAuth 認証情報にアクセスできます。 - `tokenManager`​: 設定でのトークンマネージャーの名前。 - `resourceOwnerId`​: RO の ID。 #### [](#トークンマネージャー-例)トークンマネージャー - 例 次の表には、トークンマネージャーから情報を取得する方法の例が含まれます。フローで、OAuth 認証を処理する HTTP Request Connector の後にこれらの操作を配置して使用します。
関数 結果

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" target="accessToken"/>

accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" resourceOwnerId="Perter" target="accessToken"/>

ID ​Peter​ で識別されるリソースオーナーの ​accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-refresh-token tokenManager="tokenManagerConfig" target="refreshToken"/>

refreshToken​ 値には、DataWeave から ​vars.refreshToken​ を使用してアクセスできます。

<oauth:retrieve-expires-in tokenManager="tokenManagerConfig" target="expiresIn"/>

Expires in (期限) 値には、DataWeave から ​vars.expiresIn​ を使用してアクセスできます。

<oauth:retrieve-state tokenManager="tokenManagerConfig" target="state"/>

認証 URL に使用される State (状態) には、DataWeave から ​vars.state​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" key="a_custom_param_name" target="customParam"/>

トークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" resourceOwnerId="Perter" key="a_custom_param_name" target="customParam"/>

リソースオーナー ​Peter​ のトークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

### [](#トークンマネージャー-アクセストークンの無効化)トークンマネージャー - アクセストークンの無効化 トークンマネージャーの使用時に、特定のリソースオーナーをブロックできます。 ### [](#トークンマネージャー-studio-ビジュアルエディター)トークンマネージャー - Studio ビジュアルエディター 1. OAuth コンポーネントの ​**\[Invalidate OAuth Context\]**​ 操作をキャンバスにドラッグします。 2. プロパティエディターで、​**\[Token Manager Configuration (トークンマネージャー設定)\]**​ をセットアップして、OAuth 認証の処理時に HTTP Request Connector が参照するものと同じ​**トークンマネージャー**​を参照するようにします。 3. **\[Resource Owner Id (リソースオーナー ID)\]**​ を、クリアする RO を参照する式に設定します。例: `#[vars.resourceOwnerId]` ### [](#トークンマネージャー-xml-エディター)トークンマネージャー - XML エディター ```xml ``` **OAuth コンポーネント**​の Invalidate OAuth Context\* 操作は、トークンマネージャー内に保存されているすべての OAuth 情報をクリーンアップします。 1 つのトークンマネージャーで複数の RO を使用する場合、ある RO の OAuth 情報のみをクリアするには、\[Invalidate OAuth Context (OAuth コンテキストの無効化)\] 要素にリソースオーナー ID を指定する必要があります。 ```xml ``` ### [](#トークンマネージャー-トークンマネージャーオブジェクトストアのカスタマイズ)トークンマネージャー - トークンマネージャーオブジェクトストアのカスタマイズ デフォルトでは、トークンマネージャーはメモリ内オブジェクトストアを使用してログイン情報を保存します。​`objectStore`​ 属性を使用して、トークンマネージャーのオブジェクトストアをカスタマイズできます。​[カスタムオブジェクトストアの設定方法](https://docs.mulesoft.com/object-store-connector/latest/object-store-to-define-a-new-os)​も参照してください。 ## [](#複数ユーザーの代理でのリソースアクセス)複数ユーザーの代理でのリソースアクセス 複数ユーザーの代理でリソースにアクセスする必要がある場合、HTTP Connector を使用する代わりに SDK Connector を OAuth Module と組み合わせて使用します。 ## [](#関連情報)関連情報 - [HTTP Connector の概要](https://docs.mulesoft.com/jp/http-connector/1.5/) - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-connector-xml-reference) - [Object Store v2](https://docs.mulesoft.com/jp/object-store/) # HTTP 要求の認証の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作は、Mule クライアントアプリケーションと、次のいずれかの種別の認証が必要なサービスとの接続をサポートします。 - [基本認証](#basic-authentication) - [ダイジェスト認証](#digest-authentication) - [NTLM 認証](#ntlm-authentication) - [OAuth2 認証コード許可種別認証](#oauth2-grant-authentication) - [OAuth2 クライアントログイン情報許可種別認証](#oauth2-client-authentication) 要求の対象である HTTP サービスで認証が必要な場合、必要なログイン情報を HTTP ​**Request**​ 操作のグローバル設定要素で指定します。Mule Runtime Engine (Mule) は、HTTP 要求の認証ヘッダーに設定されたログイン情報を使用します。 トランスポートレイヤーセキュリティ (TLS) を設定して OAuth ログイン情報を暗号化することもできます。 API または Mule アプリケーションが未認証のソースから要求を受信しないように保護するには、API Manager ポリシーを使用します。​[「外部プロバイダーを使用した OAuth 2.0 アクセストークンの適用」](#api-manager::external-oauth-2.0-token-validation-policy.adoc)​を参照してください。
Anypoint Studio の HTTP ​Request​ 操作のグローバル設定では、​[Authentication (認証)]​ 項目で ​[Expression (式)]​ オプションを使用しないでください。
## [](#http-xml-auth-setup)HTTP XML 認証のセットアップ HTTP Connector の認証の XML 値:
認証種別 XML 値

基本認証

<http:authentication >
  <http:basic-authentication
  username="UN" password="PW"/>
</http:authentication>

NTLM Authentication

<http:authentication >
  <http:ntlm-authentication
  domain="DM" workstation="WS"
  username="UN" password="PW" />
</http:authentication>

ダイジェスト認証

<http:authentication >
  <http:digest-authentication
  username="UN" password="PW"/>
</http:authentication>
また、Studio で OAuth コンポーネントの操作をキャンバスに追加すると、次の連動関係がプロジェクトの ​`pom.xml`​ ファイルに自動的に追加されます。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` ## [](#basic-authentication)基本認証を設定する 基本認証メソッドを使用すると、HTTP ユーザーエージェントは HTTP 要求を行うときにユーザー名とパスワードを指定できます。 次の Mule アプリケーションの例は、ユーザー情報の要求を [GitHub API](https://developer.github.com/v3)​ に送信して HTTP ​**Request**​ 操作の基本認証を設定する方法を示しています。この例では、Github API はユーザー情報の要求を ​`https://api.github.com/user`​ へのポート 443 で受け入れます。 基本認証要件を満たすため、Mule アプリケーションは GitHub のユーザー名とパスワードを指定します。このログイン情報を指定するには、HTTP ​**Request**​ 操作を設定します。 この例では、GitHub アカウントが必要です。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 7. **\[Advanced (詳細)\]**​ タブで ​**\[Allowed methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 8. HTTP の ​**\[Request\]**​ 操作を HTTP の ​**\[Listener\]**​ ソースの横にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 10. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `api.github.com` - **Port (ポート)**​: `443` 11. **\[Authentication (認証)\]**​ を ​**\[Basic authentication (基本認証)\]**​ に設定します。 12. **\[Username (ユーザー名)\]**​ を GitHub ユーザー名アカウントに設定します。 13. **\[Password (パスワード)\]**​ を GitHub パスワードアカウントまたは [個人アクセストークン](https://github.com/settings/tokens)​に設定します。 14. **\[Preemptive (プリエンプティブ)\]**​ を ​**\[True (Default) (True (デフォルト))\]**​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求の基本認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-basic-authentication-1.png) 16. HTTP ​**Request**​ 設定ウィンドウで、​**\[Method (メソッド)\]**​ を ​**\[GET (Default) (GET (デフォルト))\]**​ に設定します。 17. **\[Path (パス)\]**​ を ​`/user`​ に設定します。 18. **\[Mule Palette (Mule パレット)\]**​ で、​**\[Core (コア)\] > \[Transform message\]**​ を選択します。 19. **\[Transform message\]**​ コンポーネントを HTTP の ​**\[Request\]**​ 操作の右にドラッグします。 20. **\[Output (出力)\]**​ プロパティウィンドウで、出力を次の DataWeave コードに変更します。 ```dataweave %dw 2.0 output application/json --- payload ``` 21. Mule アプリケーションを保存します。 22. **\[Run (実行)\] > \[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ をクリックします。 23. API をコールするには、インターネットブラウザーに ​`http://localhost:8081/`​ を入力します。 GitHub API がユーザー情報を返します。次に例を示します。 ```json { "login":"kahn", "id":16xxx343, "avatar_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"` ... } ``` ブラウザーで ​`HTTP GET on resource 'https://api.github.com:443/user' failed: unauthorized (401)`​ が返された場合、GitHub パスワードを指定する代わりに [個人アクセストークン](https://github.com/settings/tokens)​を使用します。新しいトークンを生成する場合、​**\[user\]**​ > ​**\[read:user\]**​ スコープのみが必要です。 ### [](#基本認証を設定する-xml-の例)基本認証を設定する XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#digest-authentication)ダイジェスト認証を設定する ダイジェスト認証メソッドを使用すると、Web サーバーはユーザーの Web ブラウザーを介してユーザーログイン情報を検証できます。 次の例は、​`GET`​ 要求を URL ​`http://www.example.com/test`​ に送信し、指定されたユーザー名とパスワードを含む認証ヘッダーを追加して、HTTP ​**Request**​ 操作のダイジェスト認証を設定する方法を示しています。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Method (メソッド)\]**​ を ​`GET`​ に、​**\[Path (パス)\]**​ を ​`test`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `example.com` - **Port (ポート)**​: `8081` 5. **\[Authentication (認証)\]**​ を ​**\[Digest authentication (ダイジェスト認証)\]**​ に設定します。 6. **\[Username (ユーザー名)\]**​ を ​`Username`​ に設定します。 7. **\[Password (パスワード)\]**​ を ​`Password`​ に設定します。 8. **\[OK\]**​ をクリックします。 ![HTTP 要求のダイジェスト認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-digest-authentication-1.png) ### [](#ダイジェスト認証を設定する-xml-の例)ダイジェスト認証を設定する XML の例 次のコードは、XML でダイジェスト認証を設定する方法を示しています。 ```xml ... ... ``` ## [](#ntlm-authentication)NTLM 認証を設定する NT LAN Manager (NTLM) 認証で、以前の Microsoft 製品である Microsoft LAN Manager (LANMAN) の認証プロトコルが置き換えられました。 次の例は、​`GET`​ 要求を URL ​`http://www.example.com/test`​ に送信し、指定されたユーザー名とパスワードを含む認証ヘッダーを追加して、HTTP ​**Request**​ 操作の NTLM 認証を設定する方法を示しています。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Method (メソッド)\]**​ を ​`GET`​ に、​**\[Path (パス)\]**​ を ​`test`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `example.com` - **Port (ポート)**​: `8081` 5. **\[Authentication (認証)\]**​ を ​**\[Ntlm authentication (NTLM 認証)\]**​ に設定します。 6. **\[Username (ユーザー名)\]**​ を ​`Username`​ に設定します。 7. **\[Password (パスワード)\]**​ を ​`Password`​ に設定します。 8. **\[Domain (ドメイン)\]**​ と ​**\[Workstation (ワークステーション)\]**​ を設定します (省略可能)。 9. **\[OK\]**​ をクリックします。 ![HTTP 要求の NTLM 認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-NTLM-authentication-1.png) ### [](#ntlm-認証を設定する-xml)NTLM 認証を設定する XML 次のコードは、XML で NTLM 認証を設定する方法を示しています。 ```xml ... ``` ## [](#oauth2-grant-authentication)OAuth2 認証コード許可種別認証を設定する OAuth2 認証コードでは、OAuth 2.0 認証コード許可種別を設定します。OAuth 認証サーバーには、OAuth で保護されるリソースが保持されています。たとえば、GitHub API への API コールを [OAuth を使用する GitHub サーバー](https://developer.github.com/v3/oauth/)​で認証できます。 HTTP Connector では OAuth 2.0 のみがサポートされています。 次の例は、GitHub OAuth 認証サーバー上の保護されたリソースである GitHub ユーザーデータにアクセスする Mule アプリケーションを作成して、HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別認証を設定する方法を示しています。この例では次の方法を説明します。 - 認証のセットアップ - Mule アプリケーションの作成 - Mule アプリケーションの実行 この例では、GitHub アカウントが必要です。 Mule アプリケーションを作成する前に、次の図で、OAuth アクセストークンを取得してデータのトークンを返す手順を確認してください。 ![OAuth アクセストークンの取得](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-authentication-diagram-2.png) 1. GitHub アクセスへの HTTP 要求をクライアントアプリケーションに送信します。 2. クライアントアプリケーションは要求を GitHub 認証サーバーにリダイレクトします。 3. GitHub はログイン情報を要求します。 4. ログインしてクライアントアプリケーションを認証します。 5. GitHub 認証サーバーはアクセストークンを返します。 6. クライアントアプリケーションは次の要求をリスンします。 ![データのトークンを返す](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-authentication-diagram-3.png) 1. アクセストークンを使用して保護されたユーザーデータを要求します。 2. ユーザーデータの要求をリダイレクトします。 3. クライアントアプリケーションは GitHub 認証サーバーからユーザーデータを取得します。 4. クライアントアプリケーションは次の要求をリスンします。 ### [](#認証のセットアップ)認証のセットアップ 認証をセットアップする手順は、次のとおりです。 ![認証のセットアップ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-authentication-diagram-1.png) 1. クライアントアプリケーションを認証サーバーに登録します。 認証サーバーが Mule アプリケーションにクライアント ID とクライアントシークレットを割り当てます。アプリケーションは、このログイン情報を使用して認証サーバーに身元を証明します。登録時には、Mule アプリケーションホームページへの URL とアプリケーションコールバック URL も指定します。 2. GitHub にログインします。 3. GitHub の \[Personal settings (個人設定)\] で、 [アプリケーションを登録](https://github.com/settings/applications/new)​します。 4. **\[Register a new OAuth application (新規 OAuth アプリケーションの登録)\]**​ ページで、次の項目に入力します。 - **Application name (アプリケーション名)**​: `oauth-grant-code` - **Homepage URL (ホームページ URL)**​: `http://localhost:8082` - **Authorization callback URL (認証コールバック URL)**​: `http://localhost:8082/callback` 5. **\[Register application (アプリケーションを登録)\]**​ をクリックします。 GitHub で、登録されたアプリケーションのページが ​`https://github.com/settings/applications/`​ に作成されます。このページには、GitHub で割り当てられたクライアント ID とクライアントシークレットが含まれます。 ### [](#mule-アプリケーションを作成する)Mule アプリケーションを作成する GitHub で割り当てられたクライアント ID とクライアントシークレットを使用して GitHub OAuth2 認証サーバー上にあるユーザーデータにアクセスする Mule アプリケーションを作成します。 Mule アプリケーションは、HTTP ​**Listener**​ ソース、HTTP ​**Request**​ 操作、およびプレーンテキストを JSON に変換する DataWeave ​**Transform message**​ コンポーネントで構成されます。HTTP ​**Request**​ 操作で、認証サーバーへのアクセスを設定します。Mule アプリケーションを作成する手順は、次のとおりです。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[HTTP\] > \[Request\]**​ 操作を ​**\[Listener\]**​ ソースの右にドラッグします。 7. **Package Explorer**​ ウィンドウを展開します。 8. Mule アプリケーションプロジェクトを展開します。 9. `pom.xml`​ ファイルを開きます。 10. ``​ セクションの最後で、​``​ ステートメントの前に次のステートメントを追加し、​**Request**​ 操作の OAuth オプションを有効化します。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` 11. フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 12. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 13. 次の必須項目を入力します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` OAuth 認証サーバーはこの URL を使用して認証コードを Mule サーバーに提供します。これで、Mule サーバーはアクセストークンを取得できます。これは、ローカルのアドレスではなく、外部に表示できるコールバックアドレスである必要があります。 - **Local authorization url (ローカル認証 URL)**​: `https://localhost:8082/login` この URL により、アカウントに対してアプリケーションへのアクセスを認証して許可できます。 - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` この URL により、Mule アプリケーションからのユーザー要求は GitHub 認証サーバーの認証 URL にリダイレクトされます。 - **Client id (クライアント ID)**​ アプリケーション登録時に GitHub から指定されたクライアント ID。 - **Client Secret (クライアントシークレット)**​ アプリケーション登録時に GitHub から指定されたクライアントシークレット。 - **Token Manager (トークンマネージャー)**​ クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャーを設定します。トークンマネージャーを設定しない場合、新しい要求のたびに OAuth Module が再初期化されます。 - **Token url (トークン URL)**​: `https://github.com/login/oauth/access_token` Mule クライアントアプリケーションはトークンをトークン URL に送信します。 さらに、次の省略可能な項目を設定できます。 - **Local callback url (ローカルコールバック URL)**​: `http://localhost:8082/callback` この URL は、GitHub にアプリケーションを登録したときに設定した ​**External callback url (外部コールバック URL)**​ の値と同じです。これは、リモートホストから ​**External callback url (外部コールバック URL)**​ に送信された要求を受信するために Mule が作成するサーバーの設定です。外部と内部のコールバック URL は同じです。一方の URL でランタイムでサーバーを作成し (内部)、もう一方の URL でインターネットでサーバーを参照できます (外部)。 - **Response Access Token (応答アクセストークン)**​: `#[payload.access_token]` この DataWeave 式は、アクセストークンを抽出します。 - **Response Refresh Token (応答更新トークン)**​: `[payload.access_token]` プロバイダーが更新トークンを送信する場合、更新トークンには ​`[payload.refresh_token]`​ のように DataWeave 式を使用します。ただし、この例では GitHub が実際に更新トークンを使用することはありません。 ![認証コード許可種別認証の設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-oauth-authentication-1.png) 14. **\[OK\]**​ をクリックします。 15. Mule アプリケーションを保存します。 ### [](#mule-クライアントアプリケーションを実行する)Mule クライアントアプリケーションを実行する Mule クライアントアプリケーションを実行し、GitHub ユーザーデータを取得するには、アクセストークンの有効期限が切れる前に次の手順を実行します。 1. **Package Explorer**​ ウィンドウで、プロジェクト名を右クリックし、​**\[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ を選択します。 コンソールに Mule アプリケーションがデプロイされていることが表示されます。 2. ブラウザーで、ローカル認証 URL ​`http://localhost:8082/login`​ を入力して、 [OAuth2 ダンス](https://tools.ietf.org/html/rfc6749#section-4.1)​を開始します。 GitHub がログインを促します。 3. GitHub のユーザー名とパスワードを使用してログインします。 GitHub が、登録されたアプリケーションの実行を認証するように促します。 ![Github の \[Authorize application (アプリケーションを認証)\] ページ](_images/http-authentication-githubpage.png) 4. **\[Authorize application (アプリケーションを認証)\]**​ をクリックします。 OAuth2 ダンスの開始に使用したブラウザーに、本文テキストとして ​`Successfully retrieved access token`​ が表示されます。 5. トークンでデータを取得するには、ブラウザーに次の URL を入力します。 `http://localhost:8081/github` GitHub API がユーザー情報を返します。 { "login":"kahn", "id":16xxx343,"avatar\_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"\` ... } ### [](#oauth2-認証コードを設定する-xml-の例)OAuth2 認証コードを設定する XML の例 次のコードは、XML で OAuth2 認証コードを設定する方法を示しています。 ```xml ``` ### [](#oauth2-認証スコープを設定する)OAuth2 認証スコープを設定する OAuth のスコープはセキュリティロールに似ています。​**\[Scopes (スコープ)\]**​ 項目で、認証サーバーで使用可能な OAuth スコープのカンマ区切りリストを定義して、OAuth2 認証コード許可種別のスコープを設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. グローバル要素を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 4. **\[Scopes (スコープ)\]**​ を ​`access_user_details, read_user_files`​ に設定します。 ![OAuth 認証の \[Scopes (スコープ)\] 項目の設定](_images/http-oauth-scopes.png) 5. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`scopes`​ 設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証のカスタムパラメーターを設定する)OAuth2 認証のカスタムパラメーターを設定する OAuth 実装で、OAuth 認証サーバー (OAS) の認証 URL をコールするときに、追加のクエリパラメーターの送信を要求または許可する場合があります。OAuth2 認証コード許可種別の次のパラメーターを ​**\[Custom parameters (カスタムパラメーター)\]**​ 項目で設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. グローバル要素を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 4. 次の項目を設定します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` - **Local authorization url (ローカル認証 URL)**​: `http://localhost:8082/login` - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` - **Client id (クライアント ID)**​: GitHub アカウントのクライアント ID - **Client secret (クライアントシークレット)**​: GitHub アカウントのクライアントシークレット - **Token url (トークン URL)**​: `https://github.com/login/oauth/access_token` 5. **\[Custom parameters (カスタムパラメーター)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. プラス記号 (​**+**​) をクリックして、新しいカスタムパラメーターを追加します。 7. **\[Key (キー)\]**​ を ​`box_device_id`​ に、​**\[Value (値)\]**​ を ​`123142`​ に設定します。 8. ステップ 6 を繰り返します。 9. **\[Key (キー)\]**​ を ​`box_device_name`​ に、​**\[Value (値)\]**​ を ​`my-phone`​ に設定します。 ![OAuth 認証の \[Custom Parameters (カスタムパラメーター)\] 項目の設定](_images/http-oauth-customparameter.png) 10. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`oauth:custom-parameter`​ 設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証のリダイレクト-uri-を設定する)OAuth2 認証のリダイレクト URI を設定する [OAuth 2.0 仕様](https://tools.ietf.org/html/rfc6749)​には、リダイレクトの宛先サイトからリダイレクト URI をチェックする方法が説明されています。OAuth 認証サーバーはこの URL を使用して、アクセストークンを取得するための認証コードを Mule サーバーに提供します。この URL を指定する場合、Mule はその URL にエンドポイントを作成して認証コードを保存します。ただし、手動で認証コードを抽出するためのエンドポイントがすでに登録されていている場合は除きます。 リダイレクト URI (外部 ​`redirect_uri`​) を上書きするには、​**\[External callback url (外部コールバック URL)\]**​ 項目で外部リダイレクト URI を設定します。これは、CloudHub にアプリケーションをデプロイするなどのアクションに役立ちます。認証を設定するときに、必要に応じて ​**\[Local callback url (ローカルコールバック URL)\]**​ 項目も設定できます。 CloudHub の場合、Mule はエンドポイントを次のような形式で作成する必要があります。 `https://.cloudhub.io/` Mule に、正しい形式で CloudHub のエンドポイントを作成するように指示するには、OAuth2 認証コード許可種別設定に ​**\[External callback url (外部コールバック URL)\]**​ 項目を含めます。 ### [](#oauth2-認証のパラメーターの抽出を設定する)OAuth2 認証のパラメーターの抽出を設定する 認証サーバーから認証コードを取得したら、OAuth はサーバーのトークン URL からアクセストークンを要求します。 トークン URL への応答の形式は、OAuth 仕様では定義されていません。実装ごとに異なる応答形式が返されることがあります。デフォルトでは、Mule は応答が JSON 形式であることを期待します。この場合、次の項目が指定されていれば、HTTP 要求は必要な情報の抽出方法を判断できます。 - **Response access token (応答アクセストークン)**​ JSON 項目が ​`access_token`​。 - **Response refresh token (応答更新トークン)**​ JSON 項目が ​`refresh_token`​。 - **Response expires in (応答有効期限)**​ JSON 項目が ​`expires_in`​。 応答が JSON 形式の場合、パラメーターは自動的に抽出されるため、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して、トークン URL への応答内のこれらの値を参照できます。 応答が JSON 形式ではない場合、最初にコネクタを設定して、これらの値の抽出方法がわかるようにする必要があります。 次の例では、HTTP Connector は応答の ​`Content-Type`​ が ​`application/x-www-form-urlencoded`​ であることを期待するため、応答の本文はペイロードのマッピングに変換されます。​`#[payload.access_token]`​ (​**Response access token (応答アクセストークン)**​ と ​**Response refresh token (応答更新トークン)**​ のデフォルト値) など、DataWeave 式を使用してマッピングから値を抽出します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し ​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. 次の項目のデフォルトのオプションを確認します。 - **Response access token (応答アクセストークン)**​: `#[payload.access_token]` - **Response refresh token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response expires in (応答有効期限)**​: `#[payload.expires_in]` ![OAuth 認証の \[Response access token (応答アクセストークン)\] 項目、\[Response refresh token (応答更新トークン)\] 項目、\[Response expires in (応答有効期限)\] 項目の設定](_images/http-oauth-extractparameters.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`responseAccessToken`​、​`responseRefreshToken`​、および ​`responseExpiresIn`​ の設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証の更新トークン条件を設定する)OAuth2 認証の更新トークン条件を設定する トークン URL から取得するアクセストークンは、そのうち期限切れになります。トークンの有効期間の長さは、認証サーバーの実装に応じて異なります。アクセストークンの期限が切れたら、プロセス全体をもう一度実行するのではなく、トークン URL 応答で提供される更新アクセストークンを使用して、新しいアクセストークンを取得できます。 Mule では、この動作が自動的に管理されます。デフォルトでは、HTTP 要求が実行され、応答の状況コードが 401 の場合、Mule はトークン URL をコールして新しいアクセストークンを取得します。 Mule がいつこれらの要求のいずれかを実行し、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して新しいアクセストークンを取得するかを設定できます。式は HTTP 要求コールの応答に対して評価されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し ​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. **\[Request Token When (要求トークン条件)\]**​ を ​**\[Expression (式)\]**​ に設定します。 4. 式ボックスに次の DataWeave 式を追加します。 ​`#[payload.response.status == 'unauthorized']` ![OAuth 認証の \[Response Token When (応答トークン条件)\] 項目の設定](_images/http-oauth-refreshtoken.png) **設定 XML**​ エディターでは、​`refreshTokenWhen`​ 設定は次のように記述されます。 ```xml ``` 要求の認証が失敗したら、応答には名前が ​`status`​ で値が ​`'unauthorized'`​ の XML ノードが含まれます。前の例では、DataWeave 式がその条件を評価します。条件が true と評価されると、Mule は要求をトークン URL に送信して新しいアクセストークンを取得します。 ### [](#oauth-認証の-https-を設定する)OAuth 認証の HTTPS を設定する 本番環境のように、認証サーバーとの通信に HTTPS を使用する必要がある場合、HTTPS エンコードをすべての要求 (以下に対する要求を含む) の OAuth ログイン情報に適用します。 - **Local authorization url (ローカル認証 URL)** - **Authorization url (認証 URL)** - **Redirect url (リダイレクト URL)** - **Token url (トークン URL)** OAuth 認証コード許可種別の HTTPS を設定する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[TLS Configuration (TLS 設定)\]**​ を ​**\[Global Reference (グローバル参照)\]**​ に設定します。 ![Global reference に設定された \[TLS Configuration (TLS 設定)\] 項目](_images/http-oauth-tls-1.png) 3. 項目の横にある緑のプラス記号 (​**+**​) をクリックして新規 TLS コンテキストを作成します。 4. **\[Trust Store Configuration (トラストストア設定)\]**​ で、次の項目を設定します。 - **Path (パス)**​: `your_trust_store` - **Password (パスワード)**​: `your_password` 5. **\[Kye Store Configuration (キーストア設定)\]**​ で、次の項目を設定します。 - **Path (パス)**​: `your_keystore_path` - **Key Password (キーパスワード)**​: `your_key_password` - **Password (パスワード)**​: `your_password` ![TLS コンテキストのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-oauth-tls-2.png) 1. **\[OK\]**​ をクリックします。 **\[Configuration XML (設定 XML)\]**​ エディターで、​`tls:context`​、​`tls:trust-store`​、および ​`tls:key-store`​ の設定は次のように記述されます。 ```xml ``` ## [](#oauth2-client-authentication)OAuth2 クライアントログイン情報許可種別認証を設定する OAuth 認証サーバー (OAS) は、OAuth で保護されるリソースが保持されるサーバーです。たとえば、Box サーバーは OAuth 認証のある API を提供します。 HTTP Connector では OAuth 2.0 のみがサポートされています。 クライアントアプリケーション (CA) は、リソースオーナー (RO) に属する保護されたリソースへのアクセスを試みるサーバーです。たとえば、Box サーバーにある Box ユーザーに属するリソースへのアクセスを試みる Mule サーバーです。 この場合、RO は CA でもあります。つまり、RO によって CA が暗黙的に認証されるため、手順全体が大幅に簡素化されます。 次の図は、CA と OAS の関係を示しています。 ![CA と OAS の OAuth2 ダンス](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-authentication-diagram-4.png) 保護されたリソースにアクセスする手順は、次のとおりです。 1. CA はアプリケーションを OAS サーバーに登録する必要があります。これが行われると、OAS がログイン情報を CA に割り当て、CA はそれを後で使用して身元証明に使用できます (​`client ID`​ と ​`client secret`​)。OAS は ​`Token URL`​ も提供する必要があります。CA は、後でこのトークン URL に HTTP 要求を送信し、保護されたリソースへのアクセス時に必要な ​`access token`​ を取得できます。 2. CA は、OAS の ​`Token URL`​ に対して、身元を証明するためのクライアント ID が含まれる要求を実行します。応答として、OAS は CA に ​`access token`​ を付与します。 3. このアクセストークンがあると、CA は、要求にアクセストークンが含まれている限り、OAS にある保護されたリソースに自由にアクセスできるようになります。OAS が定義したポリシーに応じて、トークンがそのうち期限切れになることがあります。 クライアントログイン情報許可種別は、クライアントアプリケーションが、OAS のリソースオーナーの代理ではなく、それ自体の代理としてアプリケーションにアクセス権を付与するためのものです。アクセストークンを取得するために必要なのは、アプリケーションのログイン情報のみです。 HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別を設定するには、​**\[Authentication (認証)\]**​ 項目を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 1. Studio で、OAuth クライアントログイン情報許可種別を使用する \[HTTP Request Configuration (HTTP 要求設定)\] グローバル要素を選択します。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. 次の項目を設定します。 - **Client id (クライアント ID)**​ アプリケーション登録時に GitHub から指定されたクライアント ID。 - **Client Secret (クライアントシークレット)**​ アプリケーション登録時に GitHub から指定されたクライアントシークレット。 - **Scopes (スコープ)**​ OAuth のスコープはセキュリティロールに似ています。 - **Token URL (トークン URL)**​ Mule クライアントアプリケーションはトークンをトークン URL に送信します。 ![クライアントログイン情報許可種別の設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-oauthcc-authentication-1.png) 1. **\[OK\]**​ をクリックします。 Mule アプリケーションは、デプロイ時にアクセストークンの取得を試みます。Mule アプリケーションがアクセストークンを取得できない場合、デプロイメントは失敗します。 ### [](#クライアントログイン情報許可種別認証を設定する-xml)クライアントログイン情報許可種別認証を設定する XML 次のコードは、XML でクライアントログイン情報許可種別認証を設定する方法を示しています。 ```xml ``` ### [](#oauth2-クライアントログイン情報のパラメーターの抽出を設定する)OAuth2 クライアントログイン情報のパラメーターの抽出を設定する OAuth2 認証コード許可種別に適用される、トークン URL からパラメーターを抽出する動作は、クライアントログイン情報許可種別にも適用されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し ​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. 次の項目のデフォルトのオプションを確認します。 - **Response access token (応答アクセストークン)**​: `#[payload.access_token]` - **Response refresh token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response expires in (応答有効期限)**​: `#[payload.expires_in]` ![クライアントログイン情報許可種別の \[Response access token (応答アクセストークン)\] 項目、\[Response refresh token (応答更新トークン)\] 項目、\[Response expires in (応答有効期限)\] 項目の設定](_images/http-oauthcc-extractparameters.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`responseAccessToken`​、​`responseRefreshToken`​、および ​`responseExpiresIn`​ の設定は次のように記述されます。 ```xml ``` ### [](#oauth2-クライアントログイン情報の更新アクセストークン条件を設定する)OAuth2 クライアントログイン情報の更新アクセストークン条件を設定する OAuth2 認証コード許可種別に適用される、トークン URL からパラメーターを抽出する動作は、クライアントログイン情報許可種別にも適用されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し ​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. **\[Request Token When (要求トークン条件)\]**​ を ​**\[Expression (式)\]**​ に設定します。 4. 式ボックスに次の DataWeave 式を追加します。 ​`#[payload.response.status == 'unauthorized']` ![OAuth2 クライアントログイン情報許可種別の \[Response Token When (応答トークン条件)\] 項目の設定](_images/http-oauthcc-refreshtoken.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`refreshTokenWhen`​ 設定は次のように記述されます。 ```xml ``` ## [](#トークンマネージャーを設定する)トークンマネージャーを設定する クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャーを設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し ​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. **\[Token manager (トークンマネージャー)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. プラス記号 (​**+**​) をクリックして、オブジェクトストアを参照する新しい設定を作成します。 ![トークンマネージャーの設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-oauth-tokenmanager-1.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`tokenManager-ref`​ 属性は ​`token-manager-config`​ 要素を次のように参照しています。 ```xml ``` ### [](#トークンマネージャー-認証へのアクセス)トークンマネージャー - 認証へのアクセス トークンマネージャーを認証許可種別に関連付けたら、OAuth Module の操作を Mule アプリケーションフロー内の任意の場所で使用して、OAuth 認証からの情報にアクセスできます。 1 つのリソースオーナーでクライアントログイン情報または認証コードを使用する場合、フローでは次の OAuth Module 操作を使用します。次の操作では、トークンマネージャーから OAuth 認証情報にアクセスできます。 ```xml ``` 複数のリソースオーナーで認証コードを使用する場合、次の OAuth Module 操作を使用します。 ```xml ``` #### [](#トークンマネージャーの例)トークンマネージャーの例 次の表には、トークンマネージャーから情報を取得する方法の例が含まれます。フローで、OAuth 認証を管理する HTTP ​**Reuqest**​ 操作の後にこれらの OAuth Module 操作を配置します。
関数 結果

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" target="accessToken"/>

accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" resourceOwnerId="Peter" target="accessToken"/>

ID ​Peter​ で識別されるリソースオーナーの ​accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-refresh-token tokenManager="tokenManagerConfig" target="refreshToken"/>

refreshToken​ 値には、DataWeave から ​vars.refreshToken​ を使用してアクセスできます。

<oauth:retrieve-expires-in tokenManager="tokenManagerConfig" target="expiresIn"/>

Expires in (期限) 値には、DataWeave から ​vars.expiresIn​ を使用してアクセスできます。

<oauth:retrieve-state tokenManager="tokenManagerConfig" target="state"/>

認証 URL に使用される State (状態) には、DataWeave から ​vars.state​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" key="a_custom_param_name" target="customParam"/>

トークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" resourceOwnerId="Peter" key="a_custom_param_name" target="customParam"/>

リソースオーナー ​Peter​ のトークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

### [](#トークンマネージャーのアクセストークンの無効化を設定する)トークンマネージャーのアクセストークンの無効化を設定する トークンマネージャーの使用時に、特定のリソースオーナーをブロックできます。 1. Studio で、OAuth Module の ​**Invalidate oauth context**​ 操作をフローにドラッグします。 2. プロパティエディターで、OAuth 認証の管理時に HTTP ​**Request**​ 操作が参照するものと同じトークンマネージャーを参照するようにトークンマネージャーを設定します。 3. **\[Resource owner Id (リソースオーナー ID)\]**​ を、クリアするリソースオーナーを参照する式に設定します (例: `#[vars.resourceOwnerId]`​)。 ![トークンマネージャーの設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-oauth-tokenmanager-2.png) **設定 XML**​ エディターでは、​`invalidate-oauth-context`​ 設定は次のように記述されます。 ```xml ``` **Invalidate oauth context**​ 操作は、トークンマネージャー内に保存されているすべての OAuth 情報をすべて削除します。 1 つのトークンマネージャーで複数のリソースオーナーを使用する場合、あるリソースオーナーの OAuth 情報のみをクリアするには、\[Invalidate OAuth Context (OAuth コンテキストの無効化)\] 要素にリソースオーナー ID を指定します。 ```xml ``` ### [](#トークンマネージャーのオブジェクトストアの設定)トークンマネージャーのオブジェクトストアの設定 デフォルトでは、トークンマネージャーはメモリ内オブジェクトストアを使用してログイン情報を保存します。​**\[Object store (オブジェクトストア)\]**​ 項目を使用して、トークンマネージャーのオブジェクトストアを設定できます。 オブジェクトストアについての詳細は、​[カスタムオブジェクトストアの設定](https://docs.mulesoft.com/object-store-connector/latest/object-store-to-define-a-new-os)​に関するドキュメントを参照してください。 ## [](#複数ユーザーの代理でのリソースアクセス)複数ユーザーの代理でのリソースアクセス 複数ユーザーの代理でリソースにアクセスする必要がある場合、HTTP Connector を使用する代わりに SDK Connector を OAuth Module と組み合わせて使用します。 ## [](#関連情報)関連情報 - [HTTP Connector の概要](https://docs.mulesoft.com/jp/http-connector/1.10/) - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.10/http-connector-xml-reference) - [Object Store v2](https://docs.mulesoft.com/jp/object-store/) # HTTP 要求の認証の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作は、Mule クライアントアプリケーションと、次のいずれかの種別の認証が必要なサービスとの接続をサポートします。 - [基本認証](#basic-authentication) - [ダイジェスト認証](#digest-authentication) - [NTLM 認証](#ntlm-authentication) - [OAuth2 認証コード許可種別認証](#oauth2-grant-authentication) - [OAuth2 クライアントログイン情報許可種別認証](#oauth2-client-authentication) 要求の対象である HTTP サービスで認証が必要な場合、必要なログイン情報を HTTP ​**Request**​ 操作のグローバル設定要素で指定します。Mule Runtime Engine (Mule) は、HTTP 要求の認証ヘッダーに設定されたログイン情報を使用します。 トランスポートレイヤーセキュリティ (TLS) を設定して OAuth ログイン情報を暗号化することもできます。 API または Mule アプリケーションが未承認のソースから要求を受信しないように保護するには、API Manager ポリシーを使用します。​[「外部プロバイダーを使用した OAuth 2.0 アクセストークンの適用」](#api-manager::external-oauth-2.0-token-validation-policy.adoc)​を参照してください。
Anypoint Studio の HTTP ​Request​ 操作のグローバル設定では、​[Authentication (認証)]​ 項目で ​[Expression (式)]​ オプションを使用しないでください。
## [](#http-xml-認証のセットアップ)HTTP XML 認証のセットアップ HTTP Connector の認証の XML 値:
認証種別 XML 値

基本認証

<http:authentication >
  <http:basic-authentication
  username="UN" password="PW"/>
</http:authentication>

NTLM 認証

<http:authentication >
  <http:ntlm-authentication
  domain="DM" workstation="WS"
  username="UN" password="PW" />
</http:authentication>

ダイジェスト認証

<http:authentication >
  <http:digest-authentication
  username="UN" password="PW"/>
</http:authentication>
また、Studio で OAuth コンポーネントの操作をキャンバスに追加すると、次の連動関係がプロジェクトの ​`pom.xml`​ ファイルに自動的に追加されます。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` ## [](#basic-authentication)基本認証を設定する 基本認証メソッドを使用すると、HTTP ユーザーエージェントは HTTP 要求を行うときにユーザー名とパスワードを指定できます。 次の Mule アプリケーションの例は、ユーザー情報の要求を [GitHub API](https://developer.github.com/v3)​ に送信して HTTP ​**Request**​ 操作の基本認証を設定する方法を示しています。この例では、Github API はユーザー情報の要求を ​`https://api.github.com/user`​ へのポート 443 で受け入れます。 基本認証要件を満たすため、Mule アプリケーションは GitHub のユーザー名とパスワードを指定します。このログイン情報を指定するには、HTTP ​**Request**​ 操作を設定します。 この例では、GitHub アカウントが必要です。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 7. **\[Advanced (詳細)\]**​ タブで ​**\[Allowed methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 8. HTTP の ​**\[Request\]**​ 操作を HTTP の ​**\[Listener\]**​ ソースの横にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 10. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `api.github.com` - **Port (ポート)**​: `443` 11. **\[Authentication (認証)\]**​ を ​**\[Basic authentication (基本認証)\]**​ に設定します。 12. **\[Username (ユーザー名)\]**​ を GitHub ユーザー名アカウントに設定します。 13. **\[Password (パスワード)\]**​ を GitHub パスワードアカウントまたは [個人アクセストークン](https://github.com/settings/tokens)​に設定します。 14. **\[Preemptive (プリエンプティブ)\]**​ を ​**\[True (Default) (True (デフォルト))\]**​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求の基本認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-basic-authentication-1.png) 16. HTTP ​**Request**​ 設定ウィンドウで、​**\[Method (メソッド)\]**​ を ​**\[GET (Default) (GET (デフォルト))\]**​ に設定します。 17. **\[Path (パス)\]**​ を ​`/user`​ に設定します。 18. **\[Mule Palette (Mule パレット)\]**​ で、​**\[Core (コア)\] > \[Transform message\]**​ を選択します。 19. **\[Transform message\]**​ コンポーネントを HTTP の ​**\[Request\]**​ 操作の右にドラッグします。 20. **\[Output (出力)\]**​ プロパティウィンドウで、出力を次の DataWeave コードに変更します。 ```dataweave %dw 2.0 output application/json --- payload ``` 21. Mule アプリケーションを保存します。 22. **\[Run (実行)\] > \[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ をクリックします。 23. API をコールするには、インターネットブラウザーに ​`http://localhost:8081/`​ を入力します。 GitHub API がユーザー情報を返します。次に例を示します。 ```json { "login":"kahn", "id":16xxx343, "avatar_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"` ... } ``` ブラウザーで ​`HTTP GET on resource 'https://api.github.com:443/user' failed: unauthorized (401)`​ が返された場合、GitHub パスワードを指定する代わりに [個人アクセストークン](https://github.com/settings/tokens)​を使用します。新しいトークンを生成する場合、​**\[user\]**​ > ​**\[read:user\]**​ スコープのみが必要です。 ### [](#基本認証を設定する-xml-の例)基本認証を設定する XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#digest-authentication)ダイジェスト認証を設定する ダイジェスト認証メソッドを使用すると、Web サーバーはユーザーの Web ブラウザーを介してユーザーログイン情報を検証できます。 次の例は、​`GET`​ 要求を URL ​`http://www.example.com/test`​ に送信し、指定されたユーザー名とパスワードを含む認証ヘッダーを追加して、HTTP ​**Request**​ 操作のダイジェスト認証を設定する方法を示しています。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Method (メソッド)\]**​ を ​`GET`​ に、​**\[Path (パス)\]**​ を ​`test`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `example.com` - **Port (ポート)**​: `8081` 5. **\[Authentication (認証)\]**​ を ​**\[Digest authentication (ダイジェスト認証)\]**​ に設定します。 6. **\[Username (ユーザー名)\]**​ を ​`Username`​ に設定します。 7. **\[Password (パスワード)\]**​ を ​`Password`​ に設定します。 8. **\[OK\]**​ をクリックします。 ![HTTP 要求のダイジェスト認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-digest-authentication-1.png) ### [](#ダイジェスト認証を設定する-xml-の例)ダイジェスト認証を設定する XML の例 次のコードは、XML でダイジェスト認証を設定する方法を示しています。 ```xml ... ... ``` ## [](#ntlm-authentication)NTLM 認証を設定する NT LAN Manager (NTLM) 認証で、以前の Microsoft 製品である Microsoft LAN Manager (LANMAN) の認証プロトコルが置き換えられました。 次の例は、​`GET`​ 要求を URL ​`http://www.example.com/test`​ に送信し、指定されたユーザー名とパスワードを含む認証ヘッダーを追加して、HTTP ​**Request**​ 操作の NTLM 認証を設定する方法を示しています。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Method (メソッド)\]**​ を ​`GET`​ に、​**\[Path (パス)\]**​ を ​`test`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `example.com` - **Port (ポート)**​: `8081` 5. **\[Authentication (認証)\]**​ を ​**\[Ntlm authentication (NTLM 認証)\]**​ に設定します。 6. **\[Username (ユーザー名)\]**​ を ​`Username`​ に設定します。 7. **\[Password (パスワード)\]**​ を ​`Password`​ に設定します。 8. **\[Domain (ドメイン)\]**​ と ​**\[Workstation (ワークステーション)\]**​ を設定します (省略可能)。 9. **\[OK\]**​ をクリックします。 ![HTTP 要求の NTLM 認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-NTLM-authentication-1.png) ### [](#ntlm-認証を設定する-xml)NTLM 認証を設定する XML 次のコードは、XML で NTLM 認証を設定する方法を示しています。 ```xml ... ``` ## [](#oauth2-grant-authentication)OAuth2 認証コード許可種別認証を設定する OAuth2 認証コードでは、OAuth 2.0 認証コード許可種別を設定します。OAuth 認証サーバーには、OAuth で保護されるリソースが保持されています。たとえば、GitHub API への API コールを [OAuth を使用する GitHub サーバー](https://developer.github.com/v3/oauth/)​で認証できます。 HTTP Connector では OAuth 2.0 のみがサポートされています。 次の例は、GitHub OAuth 認証サーバー上の保護されたリソースである GitHub ユーザーデータにアクセスする Mule アプリケーションを作成して、HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別認証を設定する方法を示しています。この例では次の方法を説明します。 - 認証のセットアップ - Mule アプリケーションの作成 - Mule アプリケーションの実行 この例では、GitHub アカウントが必要です。 Mule アプリケーションを作成する前に、次の図で、OAuth アクセストークンを取得してデータのトークンを返す手順を確認してください。 ![OAuth アクセストークンの取得](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-authentication-diagram-2.png) 1. GitHub アクセスへの HTTP 要求をクライアントアプリケーションに送信します。 2. クライアントアプリケーションは要求を GitHub 認証サーバーにリダイレクトします。 3. GitHub はログイン情報を要求します。 4. ログインしてクライアントアプリケーションを認証します。 5. GitHub 認証サーバーはアクセストークンを返します。 6. クライアントアプリケーションは次の要求をリスンします。 ![データのトークンを返す](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-authentication-diagram-3.png) 1. アクセストークンを使用して保護されたユーザーデータを要求します。 2. ユーザーデータの要求をリダイレクトします。 3. クライアントアプリケーションは GitHub 認証サーバーからユーザーデータを取得します。 4. クライアントアプリケーションは次の要求をリスンします。 ### [](#認証をセットアップする)認証をセットアップする 認証をセットアップする手順は、次のとおりです。 ![認証のセットアップ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-authentication-diagram-1.png) 1. クライアントアプリケーションを認証サーバーに登録します。 認証サーバーが Mule アプリケーションにクライアント ID とクライアントシークレットを割り当てます。アプリケーションは、このログイン情報を使用して認証サーバーに身元を証明します。登録時には、Mule アプリケーションホームページへの URL とアプリケーションコールバック URL も指定します。 2. GitHub にログインします。 3. GitHub の \[Personal settings (個人設定)\] で、 [アプリケーションを登録します](https://github.com/settings/applications/new)​。 4. **\[Register a new OAuth application (新規 OAuth アプリケーションの登録)\]**​ ページで、次の項目に入力します。 - **Application name (アプリケーション名)**​: `oauth-grant-code` - **Homepage URL (ホームページ URL)**​: `http://localhost:8082` - **Authorization callback URL (認証コールバック URL)**​: `http://localhost:8082/callback` 5. **\[Register application (アプリケーションを登録)\]**​ をクリックします。 GitHub で、登録されたアプリケーションのページが ​`https://github.com/settings/applications/`​ に作成されます。このページには、GitHub で割り当てられたクライアント ID とクライアントシークレットが含まれます。 ### [](#mule-アプリケーションを作成する)Mule アプリケーションを作成する GitHub で割り当てられたクライアント ID とクライアントシークレットを使用して GitHub OAuth2 認証サーバー上にあるユーザーデータにアクセスする Mule アプリケーションを作成します。 Mule アプリケーションは、HTTP ​**Listener**​ ソース、HTTP ​**Request**​ 操作、およびプレーンテキストを JSON に変換する DataWeave ​**Transform message**​ コンポーネントで構成されます。HTTP ​**Request**​ 操作で、認証サーバーへのアクセスを設定します。Mule アプリケーションを作成する手順は、次のとおりです。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[HTTP\] > \[Request\]**​ 操作を ​**\[Listener\]**​ ソースの右にドラッグします。 7. **Package Explorer**​ ウィンドウを展開します。 8. Mule アプリケーションプロジェクトを展開します。 9. `pom.xml`​ ファイルを開きます。 10. ``​ セクションの最後で、​``​ ステートメントの前に次のステートメントを追加し、​**Request**​ 操作の OAuth オプションを有効化します。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` 11. フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 12. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 13. 次の必須項目を入力します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` OAuth 認証サーバーはこの URL を使用して認証コードを Mule サーバーに提供します。これで、Mule サーバーはアクセストークンを取得できます。これは、ローカルのアドレスではなく、外部に表示できるコールバックアドレスである必要があります。 - **Local authorization url (ローカル認証 URL)**​: `https://localhost:8082/login` この URL により、アカウントに対してアプリケーションへのアクセスを認証して許可できます。 - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` この URL により、Mule アプリケーションからのユーザー要求は GitHub 認証サーバーの認証 URL にリダイレクトされます。 - **Client id (クライアント ID)**​ アプリケーション登録時に GitHub から指定されたクライアント ID。 - **Client Secret (クライアントシークレット)**​ アプリケーション登録時に GitHub から指定されたクライアントシークレット。 - **Token Manager (トークンマネージャー)**​ クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャーを設定します。トークンマネージャーを設定しない場合、新しい要求のたびに OAuth Module が再初期化されます。 - **Token url (トークン URL)**​: `https://github.com/login/oauth/access_token` Mule クライアントアプリケーションはトークンをトークン URL に送信します。 さらに、次の省略可能な項目を設定できます。 - **Local callback url (ローカルコールバック URL)**​: `http://localhost:8082/callback` この URL は、GitHub にアプリケーションを登録したときに設定した ​**External callback url (外部コールバック URL)**​ の値と同じです。これは、リモートホストから ​**External callback url (外部コールバック URL)**​ に送信された要求を受信するために Mule が作成するサーバーの設定です。外部と内部のコールバック URL は同じです。一方の URL でランタイムでサーバーを作成し (内部)、もう一方の URL でインターネットでサーバーを参照できます (外部)。 - **Response Access Token (応答アクセストークン)**​: `#[payload.access_token]` この DataWeave 式は、アクセストークンを抽出します。 - **Response Refresh Token (応答更新トークン)**​: `[payload.access_token]` プロバイダーが更新トークンを送信する場合、更新トークンには ​`[payload.refresh_token]`​ のように DataWeave 式を使用します。ただし、この例では GitHub が実際に更新トークンを使用することはありません。 ![認証コード許可種別認証の設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-oauth-authentication-1.png) 14. **\[OK\]**​ をクリックします。 15. Mule アプリケーションを保存します。 ### [](#mule-クライアントアプリケーションを実行する)Mule クライアントアプリケーションを実行する Mule クライアントアプリケーションを実行し、GitHub ユーザーデータを取得するには、アクセストークンの有効期限が切れる前に次の手順を実行します。 1. **Package Explorer**​ ウィンドウで、プロジェクト名を右クリックし、​**\[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ を選択します。 コンソールに Mule アプリケーションがデプロイされていることが表示されます。 2. ブラウザーで、ローカル認証 URL ​`http://localhost:8082/login`​ を入力して、 [OAuth2 ダンス](https://tools.ietf.org/html/rfc6749#section-4.1)​を開始します。 GitHub がログインを促します。 3. GitHub のユーザー名とパスワードを使用してログインします。 GitHub が、登録されたアプリケーションの実行を認証するように促します。 ![Github の \[Authorize application (アプリケーションの承認)\] ページ](_images/http-authentication-githubpage.png) 4. **\[Authorize application (アプリケーションを認証)\]**​ をクリックします。 OAuth2 ダンスの開始に使用したブラウザーに、本文テキストとして ​`Successfully retrieved access token`​ が表示されます。 5. トークンでデータを取得するには、ブラウザーに次の URL を入力します。 `http://localhost:8081/github` GitHub API がユーザー情報を返します。 { "login":"kahn", "id":16xxx343,"avatar\_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"\` ... } ### [](#oauth2-認証コードを設定する-xml-の例)OAuth2 認証コードを設定する XML の例 次のコードは、XML で OAuth2 認証コードを設定する方法を示しています。 ```xml ``` ### [](#oauth2-認証スコープを設定する)OAuth2 認証スコープを設定する OAuth のスコープはセキュリティロールに似ています。​**\[Scopes (スコープ)\]**​ 項目で、認証サーバーで使用可能な OAuth スコープのカンマ区切りリストを定義して、OAuth2 認証コード許可種別のスコープを設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. グローバル要素を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 4. **\[Scopes (スコープ)\]**​ を ​`access_user_details, read_user_files`​ に設定します。 ![OAuth 認証の \[Scopes (スコープ)\] 項目の設定](_images/http-oauth-scopes.png) 5. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`scopes`​ 設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証のカスタムパラメーターを設定する)OAuth2 認証のカスタムパラメーターを設定する OAuth 実装で、OAuth 認証サーバー (OAS) の認証 URL をコールするときに、追加のクエリパラメーターの送信を要求または許可する場合があります。OAuth2 認証コード許可種別の次のパラメーターを ​**\[Custom parameters (カスタムパラメーター)\]**​ 項目で設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. グローバル要素を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 4. 次の項目を設定します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` - **Local authorization url (ローカル認証 URL)**​: `http://localhost:8082/login` - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` - **Client id (クライアント ID)**​: GitHub アカウントのクライアント ID - **Client secret (クライアントシークレット)**​: GitHub アカウントのクライアントシークレット - **Token url (トークン URL)**​: `https://github.com/login/oauth/access_token` 5. **\[Custom parameters (カスタムパラメーター)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. プラス記号 (​**+**​) をクリックして、新しいカスタムパラメーターを追加します。 7. **\[Key (キー)\]**​ を ​`box_device_id`​ に、​**\[Value (値)\]**​ を ​`123142`​ に設定します。 8. ステップ 6 を繰り返します。 9. **\[Key (キー)\]**​ を ​`box_device_name`​ に、​**\[Value (値)\]**​ を ​`my-phone`​ に設定します。 ![OAuth 認証の \[Custom Parameters (カスタムパラメーター)\] 項目の設定](_images/http-oauth-customparameter.png) 10. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`oauth:custom-parameter`​ 設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証のリダイレクト-uri-を設定する)OAuth2 認証のリダイレクト URI を設定する [OAuth 2.0 仕様](https://tools.ietf.org/html/rfc6749)​には、リダイレクトの宛先サイトからリダイレクト URI をチェックする方法が説明されています。OAuth 認証サーバーはこの URL を使用して、アクセストークンを取得するための認証コードを Mule サーバーに提供します。この URL を指定する場合、Mule はその URL にエンドポイントを作成して認証コードを保存します。ただし、手動で認証コードを抽出するためのエンドポイントがすでに登録されていている場合は除きます。 リダイレクト URI (外部 ​`redirect_uri`​) を上書きするには、​**\[External callback url (外部コールバック URL)\]**​ 項目で外部リダイレクト URI を設定します。これは、CloudHub にアプリケーションをデプロイするなどのアクションに役立ちます。認証を設定するときに、必要に応じて ​**\[Local callback url (ローカルコールバック URL)\]**​ 項目も設定できます。 CloudHub の場合、Mule はエンドポイントを次のような形式で作成する必要があります。 `https://.cloudhub.io/` Mule に、正しい形式で CloudHub のエンドポイントを作成するように指示するには、OAuth2 認証コード許可種別設定に ​**\[External callback url (外部コールバック URL)\]**​ 項目を含めます。 ### [](#oauth2-認証のパラメーターの抽出を設定する)OAuth2 認証のパラメーターの抽出を設定する 認証サーバーから認証コードを取得したら、OAuth はサーバーのトークン URL からアクセストークンを要求します。 トークン URL への応答の形式は、OAuth 仕様では定義されていません。実装ごとに異なる応答形式が返されることがあります。デフォルトでは、Mule は応答が JSON 形式であることを期待します。この場合、次の項目が指定されていれば、HTTP 要求は必要な情報の抽出方法を判断できます。 - **Response access token (応答アクセストークン)**​ JSON 項目が ​`access_token`​。 - **Response refresh token (応答更新トークン)**​ JSON 項目が ​`refresh_token`​。 - **Response expires in (応答有効期限)**​ JSON 項目が ​`expires_in`​。 応答が JSON 形式の場合、パラメーターは自動的に抽出されるため、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して、トークン URL への応答内のこれらの値を参照できます。 応答が JSON 形式ではない場合、最初にコネクタを設定して、これらの値の抽出方法がわかるようにする必要があります。 次の例では、HTTP Connector は応答の ​`Content-Type`​ が ​`application/x-www-form-urlencoded`​ であることを期待するため、応答の本文はペイロードのマッピングに変換されます。​`#[payload.access_token]`​ (​**Response access token (応答アクセストークン)**​ と ​**Response refresh token (応答更新トークン)**​ のデフォルト値) など、DataWeave 式を使用してマッピングから値を抽出します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し ​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. 次の項目のデフォルトのオプションを確認します。 - **Response access token (応答アクセストークン)**​: `#[payload.access_token]` - **Response refresh token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response expires in (応答有効期限)**​: `#[payload.expires_in]` ![OAuth 認証の \[Response access token (応答アクセストークン)\] 項目、\[Response refresh token (応答更新トークン)\] 項目、\[Response expires in (応答有効期限)\] 項目の設定](_images/http-oauth-extractparameters.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`responseAccessToken`​、​`responseRefreshToken`​、および ​`responseExpiresIn`​ の設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証の更新トークン条件を設定する)OAuth2 認証の更新トークン条件を設定する トークン URL から取得するアクセストークンは、そのうち期限切れになります。トークンの有効期間の長さは、認証サーバーの実装に応じて異なります。アクセストークンの期限が切れたら、プロセス全体をもう一度実行するのではなく、トークン URL 応答で提供される更新アクセストークンを使用して、新しいアクセストークンを取得できます。 Mule では、この動作が自動的に管理されます。デフォルトでは、HTTP 要求が実行され、応答の状況コードが 403 の場合、Mule はトークン URL をコールして新しいアクセストークンを取得します。 Mule がいつこれらの要求のいずれかを実行し、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して新しいアクセストークンを取得するかを設定できます。式は HTTP 要求コールの応答に対して評価されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し ​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. **\[Request Token When (要求トークン条件)\]**​ を ​**\[Expression (式)\]**​ に設定します。 4. 式ボックスに次の DataWeave 式を追加します。 ​`#[payload.response.status == 'unauthorized']` ![OAuth 認証の \[Response Token When (応答トークン条件)\] 項目の設定](_images/http-oauth-refreshtoken.png) **設定 XML**​ エディターでは、​`refreshTokenWhen`​ 設定は次のように記述されます。 ```xml ``` 要求の認証が失敗したら、応答には名前が ​`status`​ で値が ​`'unauthorized'`​ の XML ノードが含まれます。前の例では、DataWeave 式がその条件を評価します。条件が true と評価されると、Mule は要求をトークン URL に送信して新しいアクセストークンを取得します。 ### [](#oauth-認証の-https-を設定する)OAuth 認証の HTTPS を設定する 本番環境のように、認証サーバーとの通信に HTTPS を使用する必要がある場合、HTTPS エンコードをすべての要求 (以下に対する要求を含む) の OAuth ログイン情報に適用します。 - **Local authorization url (ローカル認証 URL)** - **Authorization url (認証 URL)** - **Redirect url (リダイレクト URL)** - **Token url (トークン URL)** OAuth 認証コード許可種別の HTTPS を設定する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[TLS Configuration (TLS 設定)\]**​ を ​**\[Global Reference (グローバル参照)\]**​ に設定します。 ![Global reference に設定された \[TLS Configuration (TLS 設定)\] 項目](_images/http-oauth-tls-1.png) 3. 項目の横にある緑のプラス記号 (​**+**​) をクリックして新規 TLS コンテキストを作成します。 4. **\[Trust Store Configuration (トラストストア設定)\]**​ で、次の項目を設定します。 - **Path (パス)**​: `your_trust_store` - **Password (パスワード)**​: `your_password` 5. **\[Kye Store Configuration (キーストア設定)\]**​ で、次の項目を設定します。 - **Path (パス)**​: `your_keystore_path` - **Key Password (キーパスワード)**​: `your_key_password` - **Password (パスワード)**​: `your_password` ![TLS コンテキストのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-oauth-tls-2.png) 1. **\[OK\]**​ をクリックします。 **\[Configuration XML (設定 XML)\]**​ エディターで、​`tls:context`​、​`tls:trust-store`​、および ​`tls:key-store`​ の設定は次のように記述されます。 ```xml ``` ## [](#oauth2-client-authentication)OAuth2 クライアントログイン情報許可種別認証を設定する OAuth 認証サーバー (OAS) は、OAuth で保護されるリソースが保持されるサーバーです。たとえば、Box サーバーは OAuth 認証のある API を提供します。 HTTP Connector では OAuth 2.0 のみがサポートされています。 クライアントアプリケーション (CA) は、リソースオーナー (RO) に属する保護されたリソースへのアクセスを試みるサーバーです。たとえば、Box サーバーにある Box ユーザーに属するリソースへのアクセスを試みる Mule サーバーです。 この場合、RO は CA でもあります。つまり、RO によって CA が暗黙的に認証されるため、手順全体が大幅に簡素化されます。 次の図は、CA と OAS の関係を示しています。 ![CA と OAS の OAuth2 ダンス](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-authentication-diagram-4.png) 保護されたリソースにアクセスする手順は、次のとおりです。 1. CA はアプリケーションを OAS サーバーに登録する必要があります。これが行われると、OAS がログイン情報を CA に割り当て、CA はそれを後で使用して身元証明に使用できます (​`client ID`​ と ​`client secret`​)。OAS は ​`Token URL`​ も提供する必要があります。CA は、後でこのトークン URL に HTTP 要求を送信し、保護されたリソースへのアクセス時に必要な ​`access token`​ を取得できます。 2. CA は、OAS の ​`Token URL`​ に対して、身元を証明するためのクライアント ID が含まれる要求を実行します。応答として、OAS は CA に ​`access token`​ を付与します。 3. このアクセストークンがあると、CA は、要求にアクセストークンが含まれている限り、OAS にある保護されたリソースに自由にアクセスできるようになります。OAS が定義したポリシーに応じて、トークンがそのうち期限切れになることがあります。 クライアントログイン情報許可種別は、クライアントアプリケーションが、OAS のリソースオーナーの代理ではなく、それ自体の代理としてアプリケーションにアクセス権を付与するためのものです。アクセストークンを取得するために必要なのは、アプリケーションのログイン情報のみです。 HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別を設定するには、​**\[Authentication (認証)\]**​ 項目を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 1. Studio で、OAuth クライアントログイン情報許可種別を使用する \[HTTP Request Configuration (HTTP 要求設定)\] グローバル要素を選択します。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. 次の項目を設定します。 - **Client id (クライアント ID)**​ アプリケーション登録時に GitHub から指定されたクライアント ID。 - **Client Secret (クライアントシークレット)**​ アプリケーション登録時に GitHub から指定されたクライアントシークレット。 - **Scopes (スコープ)**​ OAuth のスコープはセキュリティロールに似ています。 - **Token URL (トークン URL)**​ Mule クライアントアプリケーションはトークンをトークン URL に送信します。 ![クライアントログイン情報許可種別の設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-oauthcc-authentication-1.png) 1. **\[OK\]**​ をクリックします。 Mule アプリケーションは、デプロイ時にアクセストークンの取得を試みます。Mule アプリケーションがアクセストークンを取得できない場合、デプロイメントは失敗します。 ### [](#クライアントログイン情報許可種別認証を設定する-xml)クライアントログイン情報許可種別認証を設定する XML 次のコードは、XML でクライアントログイン情報許可種別認証を設定する方法を示しています。 ```xml ``` ### [](#oauth2-クライアントログイン情報のパラメーターの抽出を設定する)OAuth2 クライアントログイン情報のパラメーターの抽出を設定する OAuth2 認証コード許可種別に適用される、トークン URL からパラメーターを抽出する動作は、クライアントログイン情報許可種別にも適用されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し ​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. 次の項目のデフォルトのオプションを確認します。 - **Response access token (応答アクセストークン)**​: `#[payload.access_token]` - **Response refresh token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response expires in (応答有効期限)**​: `#[payload.expires_in]` ![クライアントログイン情報許可種別の \[Response access token (応答アクセストークン)\] 項目、\[Response refresh token (応答更新トークン)\] 項目、\[Response expires in (応答有効期限)\] 項目の設定](_images/http-oauthcc-extractparameters.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`responseAccessToken`​、​`responseRefreshToken`​、および ​`responseExpiresIn`​ の設定は次のように記述されます。 ```xml ``` ### [](#oauth2-クライアントログイン情報の更新アクセストークン条件を設定する)OAuth2 クライアントログイン情報の更新アクセストークン条件を設定する OAuth2 認証コード許可種別に適用される、トークン URL からパラメーターを抽出する動作は、クライアントログイン情報許可種別にも適用されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し ​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. **\[Request Token When (要求トークン条件)\]**​ を ​**\[Expression (式)\]**​ に設定します。 4. 式ボックスに次の DataWeave 式を追加します。 ​`#[payload.response.status == 'unauthorized']` ![OAuth2 クライアントログイン情報許可種別の \[Response Token When (応答トークン条件)\] 項目の設定](_images/http-oauthcc-refreshtoken.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`refreshTokenWhen`​ 設定は次のように記述されます。 ```xml ``` ## [](#トークンマネージャーを設定する)トークンマネージャーを設定する クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャーを設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し ​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. **\[Token manager (トークンマネージャー)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. プラス記号 (​**+**​) をクリックして、オブジェクトストアを参照する新しい設定を作成します。 ![トークンマネージャーの設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-oauth-tokenmanager-1.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`tokenManager-ref`​ 属性は ​`token-manager-config`​ 要素を次のように参照しています。 ```xml ``` ### [](#トークンマネージャー-認証へのアクセス)トークンマネージャー - 認証へのアクセス トークンマネージャーを認証許可種別に関連付けたら、OAuth Module の操作を Mule アプリケーションフロー内の任意の場所で使用して、OAuth 認証からの情報にアクセスできます。 1 つのリソースオーナーでクライアントログイン情報または認証コードを使用する場合、フローでは次の OAuth Module 操作を使用します。次の操作では、トークンマネージャーから OAuth 認証情報にアクセスできます。 ```xml ``` 複数のリソースオーナーで認証コードを使用する場合、次の OAuth Module 操作を使用します。 ```xml ``` #### [](#トークンマネージャーの例)トークンマネージャーの例 次の表には、トークンマネージャーから情報を取得する方法の例が含まれます。フローで、OAuth 認証を管理する HTTP ​**Reuqest**​ 操作の後にこれらの OAuth Module 操作を配置します。
関数 結果

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" target="accessToken"/>

accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" resourceOwnerId="Peter" target="accessToken"/>

ID ​Peter​ で識別されるリソースオーナーの ​accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-refresh-token tokenManager="tokenManagerConfig" target="refreshToken"/>

refreshToken​ 値には、DataWeave から ​vars.refreshToken​ を使用してアクセスできます。

<oauth:retrieve-expires-in tokenManager="tokenManagerConfig" target="expiresIn"/>

Expires in (期限) 値には、DataWeave から ​vars.expiresIn​ を使用してアクセスできます。

<oauth:retrieve-state tokenManager="tokenManagerConfig" target="state"/>

認証 URL に使用される State (状態) には、DataWeave から ​vars.state​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" key="a_custom_param_name" target="customParam"/>

トークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" resourceOwnerId="Peter" key="a_custom_param_name" target="customParam"/>

リソースオーナー ​Peter​ のトークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

### [](#トークンマネージャーのアクセストークンの無効化を設定する)トークンマネージャーのアクセストークンの無効化を設定する トークンマネージャーの使用時に、特定のリソースオーナーをブロックできます。 1. Studio で、OAuth Module の ​**Invalidate oauth context**​ 操作をフローにドラッグします。 2. プロパティエディターで、OAuth 認証の管理時に HTTP ​**Request**​ 操作が参照するものと同じトークンマネージャーを参照するようにトークンマネージャーを設定します。 3. **\[Resource owner Id (リソースオーナー ID)\]**​ を、クリアするリソースオーナーを参照する式に設定します (例: `#[vars.resourceOwnerId]`​)。 ![トークンマネージャーの設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-oauth-tokenmanager-2.png) **設定 XML**​ エディターでは、​`invalidate-oauth-context`​ 設定は次のように記述されます。 ```xml ``` **Invalidate oauth context**​ 操作は、トークンマネージャー内に保存されているすべての OAuth 情報をすべて削除します。 1 つのトークンマネージャーで複数のリソースオーナーを使用する場合、あるリソースオーナーの OAuth 情報のみをクリアするには、\[Invalidate OAuth Context (OAuth コンテキストの無効化)\] 要素にリソースオーナー ID を指定します。 ```xml ``` ### [](#トークンマネージャーのオブジェクトストアの設定)トークンマネージャーのオブジェクトストアの設定 デフォルトでは、トークンマネージャーはメモリ内オブジェクトストアを使用してログイン情報を保存します。​**\[Object store (オブジェクトストア)\]**​ 項目を使用して、トークンマネージャーのオブジェクトストアを設定できます。 オブジェクトストアについての詳細は、​[カスタムオブジェクトストアの設定](https://docs.mulesoft.com/object-store-connector/latest/object-store-to-define-a-new-os)​に関するドキュメントを参照してください。 ## [](#複数ユーザーの代理でのリソースアクセス)複数ユーザーの代理でのリソースアクセス 複数ユーザーの代理でリソースにアクセスする必要がある場合、HTTP Connector を使用する代わりに SDK Connector を OAuth Module と組み合わせて使用します。 ## [](#関連情報)関連情報 - [HTTP Connector の概要](https://docs.mulesoft.com/jp/http-connector/1.6/) - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.6/http-connector-xml-reference) - [Object Store v2](https://docs.mulesoft.com/jp/object-store/) # HTTP 要求の認証の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作は、Mule クライアントアプリケーションと、次のいずれかの種別の認証が必要なサービスとの接続をサポートします。 - [基本認証](#basic-authentication) - [ダイジェスト認証](#digest-authentication) - [NTLM 認証](#ntlm-authentication) - [OAuth2 認証コード許可種別認証](#oauth2-grant-authentication) - [接続アプリケーションを使用した OAuth2 認証コード許可種別認証](#oauth2-grant-authentication-connected-apps) - [OAuth2 クライアントログイン情報許可種別認証](#oauth2-client-authentication) 要求の対象である HTTP サービスで認証が必要な場合、必要なログイン情報を HTTP ​**Request**​ 操作のグローバル設定要素で指定します。Mule Runtime Engine (Mule) は、HTTP 要求の認証ヘッダーに設定されたログイン情報を使用します。 トランスポートレイヤーセキュリティ (TLS) を設定して OAuth ログイン情報を暗号化することもできます。 API または Mule アプリケーションが未認証のソースから要求を受信しないように保護するには、API Manager ポリシーを使用します。​[「外部プロバイダーを使用した OAuth 2.0 アクセストークンの適用」](#api-manager::external-oauth-2.0-token-validation-policy.adoc)​を参照してください。
Anypoint Studio の HTTP ​Request​ 操作のグローバル設定では、​[Authentication (認証)]​ 項目で ​[Expression (式)]​ オプションを使用しないでください。
## [](#http-xml-認証のセットアップ)HTTP XML 認証のセットアップ HTTP Connector の認証の XML 値:
認証種別 XML 値

基本認証

<http:authentication >
  <http:basic-authentication
  username="UN" password="PW"/>
</http:authentication>

NTLM 認証

<http:authentication >
  <http:ntlm-authentication
  domain="DM" workstation="WS"
  username="UN" password="PW" />
</http:authentication>

ダイジェスト認証

<http:authentication >
  <http:digest-authentication
  username="UN" password="PW"/>
</http:authentication>
また、Studio で OAuth コンポーネントの操作をキャンバスに追加すると、次の連動関係がプロジェクトの ​`pom.xml`​ ファイルに自動的に追加されます。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` ## [](#basic-authentication)基本認証を設定する 基本認証メソッドを使用すると、HTTP ユーザーエージェントは HTTP 要求を行うときにユーザー名とパスワードを指定できます。 次の Mule アプリケーションの例は、ユーザー情報の要求を [GitHub API](https://developer.github.com/v3)​ に送信して HTTP ​**Request**​ 操作の基本認証を設定する方法を示しています。この例では、Github API はユーザー情報の要求を ​`https://api.github.com/user`​ へのポート 443 で受け入れます。 基本認証要件を満たすため、Mule アプリケーションは GitHub のユーザー名とパスワードを指定します。このログイン情報を指定するには、HTTP ​**Request**​ 操作を設定します。
この例を使用するには GitHub アカウントが必要です。
1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 7. **\[Advanced (詳細)\]**​ タブで ​**\[Allowed methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 8. HTTP の ​**\[Request\]**​ 操作を HTTP の ​**\[Listener\]**​ ソースの横にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 10. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `api.github.com` - **Port (ポート)**​: `443` 11. **\[Authentication (認証)\]**​ を ​**\[Basic authentication (基本認証)\]**​ に設定します。 12. **\[Username (ユーザー名)\]**​ を GitHub ユーザー名アカウントに設定します。 13. **\[Password (パスワード)\]**​ を GitHub パスワードアカウントまたは [個人アクセストークン](https://github.com/settings/tokens)​に設定します。 14. **\[Preemptive (プリエンプティブ)\]**​ を ​**\[True (Default) (True (デフォルト))\]**​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求の基本認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-basic-authentication-1.png) 16. HTTP ​**Request**​ 設定ウィンドウで、​**\[Method (メソッド)\]**​ を ​**\[GET (Default) (GET (デフォルト))\]**​ に設定します。 17. **\[Path (パス)\]**​ を ​`/user`​ に設定します。 18. **\[Mule Palette (Mule パレット)\]**​ で、​**\[Core (コア)\] > \[Transform message\]**​ を選択します。 19. **\[Transform message\]**​ コンポーネントを HTTP の ​**\[Request\]**​ 操作の右にドラッグします。 20. **\[Output (出力)\]**​ プロパティウィンドウで、出力を次の DataWeave コードに変更します。 ```dataweave %dw 2.0 output application/json --- payload ``` 21. Mule アプリケーションを保存します。 22. **\[Run (実行)\] > \[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ をクリックします。 23. API をコールするには、インターネットブラウザーに ​`http://localhost:8081/`​ を入力します。 GitHub API がユーザー情報を返します。次に例を示します。 ```json { "login":"kahn", "id":16xxx343, "avatar_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"` ... } ``` ブラウザーで ​`HTTP GET on resource 'https://api.github.com:443/user' failed: unauthorized (401)`​ が返された場合、GitHub パスワードを指定する代わりに [個人アクセストークン](https://github.com/settings/tokens)​を使用します。新しいトークンを生成する場合、​**\[user\]**​ > ​**\[read:user\]**​ スコープのみが必要です。 ### [](#基本認証を設定する-xml-の例)基本認証を設定する XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#digest-authentication)ダイジェスト認証を設定する ダイジェスト認証メソッドを使用すると、Web サーバーはユーザーの Web ブラウザーを介してユーザーログイン情報を検証できます。 次の例は、​`GET`​ 要求を URL ​`http://www.example.com/test`​ に送信し、指定されたユーザー名とパスワードを含む認証ヘッダーを追加して、HTTP ​**Request**​ 操作のダイジェスト認証を設定する方法を示しています。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Method (メソッド)\]**​ を ​`GET`​ に、​**\[Path (パス)\]**​ を ​`test`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `example.com` - **Port (ポート)**​: `8081` 5. **\[Authentication (認証)\]**​ を ​**\[Digest authentication (ダイジェスト認証)\]**​ に設定します。 6. **\[Username (ユーザー名)\]**​ を ​`Username`​ に設定します。 7. **\[Password (パスワード)\]**​ を ​`Password`​ に設定します。 8. **\[OK\]**​ をクリックします。 ![HTTP 要求のダイジェスト認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-digest-authentication-1.png) ### [](#ダイジェスト認証を設定する-xml-の例)ダイジェスト認証を設定する XML の例 次のコードは、XML でダイジェスト認証を設定する方法を示しています。 ```xml ... ... ``` ## [](#ntlm-authentication)NTLM 認証を設定する NT LAN Manager (NTLM) 認証で、以前の Microsoft 製品である Microsoft LAN Manager (LANMAN) の認証プロトコルが置き換えられました。 次の例は、​`GET`​ 要求を URL ​`http://www.example.com/test`​ に送信し、指定されたユーザー名とパスワードを含む認証ヘッダーを追加して、HTTP ​**Request**​ 操作の NTLM 認証を設定する方法を示しています。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Method (メソッド)\]**​ を ​`GET`​ に、​**\[Path (パス)\]**​ を ​`test`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `example.com` - **Port (ポート)**​: `8081` 5. **\[Authentication (認証)\]**​ を ​**\[Ntlm authentication (NTLM 認証)\]**​ に設定します。 6. **\[Username (ユーザー名)\]**​ を ​`Username`​ に設定します。 7. **\[Password (パスワード)\]**​ を ​`Password`​ に設定します。 8. **\[Domain (ドメイン)\]**​ と ​**\[Workstation (ワークステーション)\]**​ を設定します (省略可能)。 9. **\[OK\]**​ をクリックします。 ![HTTP 要求の NTLM 認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-NTLM-authentication-1.png) ### [](#ntlm-認証を設定する-xml)NTLM 認証を設定する XML 次のコードは、XML で NTLM 認証を設定する方法を示しています。 ```xml ... ``` ## [](#oauth2-grant-authentication)OAuth2 認証コード許可種別認証を設定する OAuth2 認証コードでは、OAuth 2.0 認証コード許可種別を設定します。OAuth 認証サーバーには、OAuth で保護されるリソースが保持されています。たとえば、GitHub API への API コールを [OAuth を使用する GitHub サーバー](https://developer.github.com/v3/oauth/)​で認証できます。 HTTP Connector では OAuth 2.0 のみがサポートされています。 次の例は、GitHub OAuth 認証サーバー上の保護されたリソースである GitHub ユーザーデータにアクセスする Mule アプリケーションを作成して、HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別認証を設定する方法を示しています。この例では次の方法を説明します。 - 認証のセットアップ - Mule アプリケーションの作成 - Mule アプリケーションの実行 この例では、GitHub アカウントが必要です。 Mule アプリケーションを作成する前に、次の図で、OAuth アクセストークンを取得してデータのトークンを返す手順を確認してください。 ![OAuth アクセストークンの取得](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-authentication-diagram-2.png) 1. GitHub アクセスへの HTTP 要求をクライアントアプリケーションに送信します。 2. クライアントアプリケーションは要求を GitHub 認証サーバーにリダイレクトします。 3. GitHub はログイン情報を要求します。 4. ログインしてクライアントアプリケーションを認証します。 5. GitHub 認証サーバーはアクセストークンを返します。 6. クライアントアプリケーションは次の要求をリスンします。 ![データのトークンを返す](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-authentication-diagram-3.png) 1. アクセストークンを使用して保護されたユーザーデータを要求します。 2. ユーザーデータの要求をリダイレクトします。 3. クライアントアプリケーションは GitHub 認証サーバーからユーザーデータを取得します。 4. クライアントアプリケーションは次の要求をリスンします。 ### [](#認証のセットアップ)認証のセットアップ 認証をセットアップする手順は、次のとおりです。 ![認証のセットアップ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-authentication-diagram-1.png) 1. クライアントアプリケーションを認証サーバーに登録します。 認証サーバーが Mule アプリケーションにクライアント ID とクライアントシークレットを割り当てます。アプリケーションは、このログイン情報を使用して認証サーバーに身元を証明します。登録時には、Mule アプリケーションホームページへの URL とアプリケーションコールバック URL も指定します。 2. GitHub にログインします。 3. GitHub の \[Personal settings (個人設定)\] で、 [アプリケーションを登録します](https://github.com/settings/applications/new)​。 4. **\[Register a new OAuth application (新規 OAuth アプリケーションの登録)\]**​ ページで、次の項目に入力します。 - **Application name (アプリケーション名)**​: `oauth-grant-code` - **Homepage URL (ホームページ URL)**​: `http://localhost:8082` - **Authorization callback URL (認証コールバック URL)**​: `http://localhost:8082/callback` 5. **\[Register application (アプリケーションを登録)\]**​ をクリックします。 GitHub で、登録されたアプリケーションのページが ​`https://github.com/settings/applications/`​ に作成されます。このページには、GitHub で割り当てられたクライアント ID とクライアントシークレットが含まれます。 ### [](#mule-アプリケーションを作成する)Mule アプリケーションを作成する GitHub で割り当てられたクライアント ID とクライアントシークレットを使用して GitHub OAuth2 認証サーバー上にあるユーザーデータにアクセスする Mule アプリケーションを作成します。 Mule アプリケーションは、HTTP ​**Listener**​ ソース、HTTP ​**Request**​ 操作、およびプレーンテキストを JSON に変換する DataWeave ​**Transform message**​ コンポーネントで構成されます。HTTP ​**Request**​ 操作で、認証サーバーへのアクセスを設定します。Mule アプリケーションを作成する手順は、次のとおりです。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[HTTP\] > \[Request\]**​ 操作を ​**\[Listener\]**​ ソースの右にドラッグします。 7. **Package Explorer**​ ウィンドウを展開します。 8. Mule アプリケーションプロジェクトを展開します。 9. `pom.xml`​ ファイルを開きます。 10. ``​ セクションの最後で、​``​ ステートメントの前に次のステートメントを追加し、​**Request**​ 操作の OAuth オプションを有効化します。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` 11. フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 12. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 13. 次の必須項目を入力します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` OAuth 認証サーバーはこの URL を使用して認証コードを Mule サーバーに提供します。これで、Mule サーバーはアクセストークンを取得できます。これは、ローカルのアドレスではなく、外部に表示できるコールバックアドレスである必要があります。 - **Local authorization url (ローカル認証 URL)**​: `https://localhost:8082/login` この URL により、アカウントに対してアプリケーションへのアクセスを認証して許可できます。 - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` この URL により、Mule アプリケーションからのユーザー要求は GitHub 認証サーバーの認証 URL にリダイレクトされます。 - **Client id (クライアント ID)**​ アプリケーション登録時に GitHub から指定されたクライアント ID。 - **Client Secret (クライアントシークレット)**​ アプリケーション登録時に GitHub から指定されたクライアントシークレット。 - **Token Manager (トークンマネージャー)**​ クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャーを設定します。トークンマネージャーを設定しない場合、新しい要求のたびに OAuth Module が再初期化されます。 - **Token url (トークン URL)**​: `https://github.com/login/oauth/access_token` Mule クライアントアプリケーションはトークンをトークン URL に送信します。 さらに、次の省略可能な項目を設定できます。 - **Local callback url (ローカルコールバック URL)**​: `http://localhost:8082/callback` この URL は、GitHub にアプリケーションを登録したときに設定した ​**External callback url (外部コールバック URL)**​ の値と同じです。これは、リモートホストから ​**External callback url (外部コールバック URL)**​ に送信された要求を受信するために Mule が作成するサーバーの設定です。外部と内部のコールバック URL は同じです。一方の URL でランタイムでサーバーを作成し (内部)、もう一方の URL でインターネットでサーバーを参照できます (外部)。 - **Response Access Token (応答アクセストークン)**​: `#[payload.access_token]` この DataWeave 式は、アクセストークンを抽出します。 - **Response Refresh Token (応答更新トークン)**​: `[payload.access_token]` プロバイダーが更新トークンを送信する場合、更新トークンには ​`[payload.refresh_token]`​ のように DataWeave 式を使用します。ただし、この例では GitHub が実際に更新トークンを使用することはありません。 ![認証コード許可種別認証の設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-oauth-authentication-1.png) 14. **\[OK\]**​ をクリックします。 15. Mule アプリケーションを保存します。 ### [](#mule-クライアントアプリケーションを実行する)Mule クライアントアプリケーションを実行する Mule クライアントアプリケーションを実行し、GitHub ユーザーデータを取得するには、アクセストークンの有効期限が切れる前に次の手順を実行します。 1. **Package Explorer**​ ウィンドウで、プロジェクト名を右クリックし、​**\[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ を選択します。 コンソールに Mule アプリケーションがデプロイされていることが表示されます。 2. ブラウザーで、ローカル認証 URL ​`http://localhost:8082/login`​ を入力して、 [OAuth2 ダンス](https://tools.ietf.org/html/rfc6749#section-4.1)​を開始します。 GitHub がログインを促します。 3. GitHub のユーザー名とパスワードを使用してログインします。 GitHub が、登録されたアプリケーションの実行を認証するように促します。 ![Github の \[Authorize application (アプリケーションを認証)\] ページ](_images/http-authentication-githubpage.png) 4. **\[Authorize application (アプリケーションを認証)\]**​ をクリックします。 OAuth2 ダンスの開始に使用したブラウザーに、本文テキストとして ​`Successfully retrieved access token`​ が表示されます。 5. トークンでデータを取得するには、ブラウザーに次の URL を入力します。 `http://localhost:8081/github` GitHub API がユーザー情報を返します。 { "login":"kahn", "id":16xxx343,"avatar\_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"\` ... } ### [](#oauth2-認証コードを設定する-xml-の例)OAuth2 認証コードを設定する XML の例 次のコードは、XML で OAuth2 認証コードを設定する方法を示しています。 ```xml ``` ### [](#oauth2-認証スコープを設定する)OAuth2 認証スコープを設定する OAuth のスコープはセキュリティロールに似ています。​**\[Scopes (スコープ)\]**​ 項目で、認証サーバーで使用可能な OAuth スコープのカンマ区切りリストを定義して、OAuth2 認証コード許可種別のスコープを設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. グローバル要素を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 4. **\[Scopes (スコープ)\]**​ を ​`access_user_details, read_user_files`​ に設定します。 ![OAuth 認証の \[Scopes (スコープ)\] 項目の設定](_images/http-oauth-scopes.png) 5. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`scopes`​ 設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証のカスタムパラメーターを設定する)OAuth2 認証のカスタムパラメーターを設定する OAuth 実装で、OAuth 認証サーバー (OAS) の認証 URL をコールするときに、追加のクエリパラメーターの送信を要求または許可する場合があります。OAuth2 認証コード許可種別の次のパラメーターを ​**\[Custom parameters (カスタムパラメーター)\]**​ 項目で設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. グローバル要素を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 4. 次の項目を設定します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` - **Local authorization url (ローカル認証 URL)**​: `http://localhost:8082/login` - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` - **Client id (クライアント ID)**​: GitHub アカウントのクライアント ID - **Client secret (クライアントシークレット)**​: GitHub アカウントのクライアントシークレット - **Token url (トークン URL)**​: `https://github.com/login/oauth/access_token` 5. **\[Custom parameters (カスタムパラメーター)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. プラス記号 (​**+**​) をクリックして、新しいカスタムパラメーターを追加します。 7. **\[Key (キー)\]**​ を ​`box_device_id`​ に、​**\[Value (値)\]**​ を ​`123142`​ に設定します。 8. ステップ 6 を繰り返します。 9. **\[Key (キー)\]**​ を ​`box_device_name`​ に、​**\[Value (値)\]**​ を ​`my-phone`​ に設定します。 ![OAuth 認証の \[Custom Parameters (カスタムパラメーター)\] 項目の設定](_images/http-oauth-customparameter.png) 10. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`oauth:custom-parameter`​ 設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証のリダイレクト-uri-を設定する)OAuth2 認証のリダイレクト URI を設定する [OAuth 2.0 仕様](https://tools.ietf.org/html/rfc6749)​には、リダイレクトの宛先サイトからリダイレクト URI をチェックする方法が説明されています。OAuth 認証サーバーはこの URL を使用して、アクセストークンを取得するための認証コードを Mule サーバーに提供します。この URL を指定する場合、Mule はその URL にエンドポイントを作成して認証コードを保存します。ただし、手動で認証コードを抽出するためのエンドポイントがすでに登録されていている場合は除きます。 リダイレクト URI (外部 ​`redirect_uri`​) を上書きするには、​**\[External callback url (外部コールバック URL)\]**​ 項目で外部リダイレクト URI を設定します。これは、CloudHub にアプリケーションをデプロイするなどのアクションに役立ちます。認証を設定するときに、必要に応じて ​**\[Local callback url (ローカルコールバック URL)\]**​ 項目も設定できます。 CloudHub の場合、Mule はエンドポイントを次のような形式で作成する必要があります。 `https://.cloudhub.io/` Mule に、正しい形式で CloudHub のエンドポイントを作成するように指示するには、OAuth2 認証コード許可種別設定に ​**\[External callback url (外部コールバック URL)\]**​ 項目を含めます。 ### [](#oauth2-認証のパラメーターの抽出を設定する)OAuth2 認証のパラメーターの抽出を設定する 認証サーバーから認証コードを取得したら、OAuth はサーバーのトークン URL からアクセストークンを要求します。 トークン URL への応答の形式は、OAuth 仕様では定義されていません。実装ごとに異なる応答形式が返されることがあります。デフォルトでは、Mule は応答が JSON 形式であることを期待します。この場合、次の項目が指定されていれば、HTTP 要求は必要な情報の抽出方法を判断できます。 - **Response access token (応答アクセストークン)**​ JSON 項目が ​`access_token`​。 - **Response refresh token (応答更新トークン)**​ JSON 項目が ​`refresh_token`​。 - **Response expires in (応答有効期限)**​ JSON 項目が ​`expires_in`​。 応答が JSON 形式の場合、パラメーターは自動的に抽出されるため、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して、トークン URL への応答内のこれらの値を参照できます。 応答が JSON 形式ではない場合、最初にコネクタを設定して、これらの値の抽出方法がわかるようにする必要があります。 次の例では、HTTP Connector は応答の ​`Content-Type`​ が ​`application/x-www-form-urlencoded`​ であることを期待するため、応答の本文はペイロードのマッピングに変換されます。​`#[payload.access_token]`​ (​**Response access token (応答アクセストークン)**​ と ​**Response refresh token (応答更新トークン)**​ のデフォルト値) など、DataWeave 式を使用してマッピングから値を抽出します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. 次の項目のデフォルトのオプションを確認します。 - **Response access token (応答アクセストークン)**​: `#[payload.access_token]` - **Response refresh token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response expires in (応答有効期限)**​: `#[payload.expires_in]` ![OAuth 認証の \[Response access token (応答アクセストークン)\] 項目、\[Response refresh token (応答更新トークン)\] 項目、\[Response expires in (応答有効期限)\] 項目の設定](_images/http-oauth-extractparameters.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`responseAccessToken`​、​`responseRefreshToken`​、および ​`responseExpiresIn`​ の設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証の更新トークン条件を設定する)OAuth2 認証の更新トークン条件を設定する トークン URL から取得するアクセストークンは、そのうち期限切れになります。トークンの有効期間の長さは、認証サーバーの実装に応じて異なります。アクセストークンの期限が切れたら、プロセス全体をもう一度実行するのではなく、トークン URL 応答で提供される更新アクセストークンを使用して、新しいアクセストークンを取得できます。 Mule では、この動作が自動的に管理されます。デフォルトでは、HTTP 要求が実行され、応答の状況コードが 401 の場合、Mule はトークン URL をコールして新しいアクセストークンを取得します。 Mule がいつこれらの要求のいずれかを実行し、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して新しいアクセストークンを取得するかを設定できます。式は HTTP 要求コールの応答に対して評価されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. **\[Refresh Token When (更新トークン条件)\]**​ を ​**\[Expression (式)\]**​ に設定します。 4. 式ボックスに次の DataWeave 式を追加します。 ​`#[attributes.statusCode == 401]` **設定 XML**​ エディターでは、​`refreshTokenWhen`​ 設定は次のように記述されます。 ```xml ``` 要求の認証が失敗したら、応答には名前が ​`status`​ で値が ​`'unauthorized'`​ の XML ノードが含まれます。前の例では、DataWeave 式がその条件を評価します。条件が true の場合、Mule は要求をトークン URL に送信して新しいアクセストークンを取得します。 ### [](#oauth-認証の-https-を設定する)OAuth 認証の HTTPS を設定する 本番環境のように、認証サーバーとの通信に HTTPS を使用する必要がある場合、HTTPS エンコードをすべての要求 (以下に対する要求を含む) の OAuth ログイン情報に適用します。 - **Local authorization url (ローカル認証 URL)** - **Authorization url (認証 URL)** - **Redirect url (リダイレクト URL)** - **Token url (トークン URL)** OAuth 認証コード許可種別の HTTPS を設定する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[TLS Configuration (TLS 設定)\]**​ を ​**\[Global Reference (グローバル参照)\]**​ に設定します。 ![Global reference に設定された \[TLS Configuration (TLS 設定)\] 項目](_images/http-oauth-tls-1.png) 3. 項目の横にある緑のプラス記号 (​**+**​) をクリックして新規 TLS コンテキストを作成します。 4. **\[Trust Store Configuration (トラストストア設定)\]**​ で、次の項目を設定します。 - **Path (パス)**​: `your_trust_store` - **Password (パスワード)**​: `your_password` 5. **\[Kye Store Configuration (キーストア設定)\]**​ で、次の項目を設定します。 - **Path (パス)**​: `your_keystore_path` - **Key Password (キーパスワード)**​: `your_key_password` - **Password (パスワード)**​: `your_password` ![TLS コンテキストのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-oauth-tls-2.png) 1. **\[OK\]**​ をクリックします。 **\[Configuration XML (設定 XML)\]**​ エディターで、​`tls:context`​、​`tls:trust-store`​、および ​`tls:key-store`​ の設定は次のように記述されます。 ```xml ``` ## [](#oauth2-grant-authentication-connected-apps)接続アプリケーションを使用した OAuth2 認証コード許可種別認証を設定する [接続アプリケーション](https://docs.mulesoft.com/jp/access-management/connected-apps-developers)​機能を使用して、OAuth2 認証コード許可種別認証を設定できます。 次の例は、リソースサーバーの保護されたリソースにアクセスする Mule アプリケーションを作成して、HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別認証を設定する方法を示しています。​[「OAuth 認証許可種別」](https://docs.mulesoft.com/mule-runtime/latest/authorization-grant-types)​を参照してください。この例では次の方法を説明します。 1. Mule アプリケーションを作成します。 2. ローカル認証 URL へのリダイレクトを追加します。 3. OAuth 認証を追加します。 4. 接続アプリケーションを追加します。 5. トークン URL を追加します。 6. Mule アプリケーションを実行します。
この例では、組織のシステム管理者権限で Anypoint Platform アカウントへのアクセス権が付与されており、​プロパティの設定​に精通している必要があります。
Mule アプリケーションを作成する前に、OAuth アクセストークンを取得してデータのトークンを返す次の手順を確認してください。 1. ユーザーが Mule アプリケーションで HTTP 要求を送信します。 2. Mule アプリケーションは、Anypoint 組織サーバー内の保護されたリソースに要求を転送します。 3. Mule アプリケーションにトークンがないため、Anypoint 組織サーバーは要求を拒否します。 4. Mule アプリケーションは、認証サーバーに対応する URL にユーザーをリダイレクトし、認証コードが使用可能になったときに Mule アプリケーションをコールする場所を示します。 5. ユーザーが認証サーバーに対して自分自身を認証します。 6. 認証サーバーは、認証コードをリダイレクト URI に返します。 7. Mule アプリケーションは、認証サーバーをもう一度コールし、アクセストークン (オブジェクトストアに保存) を取得するための認証コードを提供します。 8. Mule アプリケーションは、有効なアクセストークンを提供して、保護されたリソースへのアクセスを再試行します。 9. Anypoint 組織サーバーは、トークンを検証し、認証が成功した後に保護されたリソースを配信します。 ユーザーにはトークンが表示されないことに注意してください。Mule アプリケーションは認証コードのみを認識し、顧客のログイン情報は認識しません。 ### [](#mule-アプリケーションを作成する-2)Mule アプリケーションを作成する Mule アプリケーションを作成するときに、フローは認証が設定されていない Anypoint 組織サーバーの保護されたリソースへのアクセスを試行します。 ```xml ``` Mule アプリケーションは、HTTP ​**Listener**​ ソースおよび HTTP ​**Request**​ 操作で構成されます。YAML ファイル内の ​`host`​、​`port`​、および ​`resource`​ プロパティがアクセス可能なリソースに設定されていない場合、Anypoint Platform はこの要求でアクセストークンを取得することを期待しているため、401 状況コードで失敗します。 ```YAML host: "anypoint.mulesoft.com" port: "443" resource: "/apiplatform/repository/v2/organizations//environments" ``` ### [](#ローカル認証-url-へのリダイレクトを追加する)ローカル認証 URL へのリダイレクトを追加する アプリケーションは、ログイン情報を使用して認証サーバーに身元を証明します。XML ファイルで、認証 URL にリダイレクトを追加します。 ```xml #[vars.redirectLocationHeaders default {}] ``` YAML ファイルに同じリダイレクトを追加します。 ```YAML host: "anypoint.mulesoft.com" port: "443" resource: "/apiplatform/repository/v2/organizations//environments" local.authorization.url: "http://localhost:8070/authorize" ``` ### [](#oauth-認証を追加する)OAuth 認証を追加する OAuth ダンスメカニズムは、HTTP 要求接続に認証が追加されると開始されます。この認証により、​`localAuthorizationUrl`​ にエンドポイントが作成され、認証サーバーの場所の設定に使用される ​`authorizationUrl`​ パラメーターにリダイレクトされます。次の例では、場所は ​`[https://anypoint.mulesoft.com/accounts/api/v2/oauth2/authorize](https://anypoint.mulesoft.com/accounts/api/v2/oauth2/authorize)`​ です。 この例では、​`resourceOwnerId`​ パラメーターの式の使用によって表される動的設定を使用します。​[「動的設定」](https://docs.mulesoft.com/mule-sdk/latest/static-dynamic-configs)​を参照してください。 `
`​ の後、​``​ の前に次のステートメントを追加して、OAuth 認証コードを有効にします。 ```xml ``` YAML ファイルに同じリダイレクトを追加します。 ```YAML host: "anypoint.mulesoft.com" port: "443" resource: "/apiplatform/repository/v2/organizations//environments" local.authorization.url: "http://localhost:8070/authorize" authorization.url: “https://anypoint.mulesoft.com/accounts/api/v2/oauth2/authorize” connected.app.client.id: “???” connected.app.client.secret: “???” local.callback.path: “???” external.callback.url: “???” token.url: “???” ``` ### [](#接続アプリケーションを追加する)接続アプリケーションを追加する 接続アプリケーション機能では、API を使用して Anypoint Platform とやりとりするアプリケーションにアクセスを委任できます。この機能は OAuth 2.0 をサポートしています。 ​[「接続アプリケーション」](https://docs.mulesoft.com/jp/access-management/connected-apps-developers)​を参照してください。Anypoint Platform で接続アプリケーションを作成する手順は、次のとおりです。 1. \[Anypoint Platform\] > ​**\[Access Management (アクセス管理)\]**​ で、​**\[Connected Apps (接続アプリケーション)\]**​ を選択します。 2. **\[Create app (アプリケーションを作成)\]**​ をクリックします。 3. アプリケーションの名前を設定します。 4. **\[Type (種別)\]**​ を ​**\[App acts on behalf of a user (ユーザーの代理となるアプリケーション)\]**​ に設定します。 5. **\[Grant Type (許可種別)\]**​ を ​**\[Authorization Code (認証コード)\]**​ に設定します。 6. **\[Website URL (Web サイト URL)\]**​ を選択した Web サイトに設定します。 7. **\[Redirect URIs (リダイレクト URI)\]**​ を Mule アプリケーションに設定します。​`external.callback.url`​ を設定します。 8. **\[Scopes (スコープ)\]**​ で、​**\[General (一般)\]**​ を ​**\[Full Access (フルアクセス)\]**​ に設定します。 9. **\[Save (保存)\]**​ をクリックします。 新しい接続アプリケーションが表示されます。Anypoint Platform によってクライアント ID とクライアントシークレットが割り当てられます。 10. **\[Copy Id (ID をコピー)\]**​ ボタンと ​**\[Copy Secret (シークレットをコピー)\]**​ ボタンを使用して、プロパティ YAML ファイルを更新します。 ```YAML host: "anypoint.mulesoft.com" port: "443" resource: "/apiplatform/repository/v2/organizations//environments" local.authorization.url: "http://localhost:8070/authorize" authorization.url: “https://anypoint.mulesoft.com/accounts/api/v2/oauth2/authorize” connected.app.client.id: “pasteWhatYouCopiedWithCopyIdButton” connected.app.client.secret: “pasteWhatYouCopiedWithCopySecretButton” local.callback.path: “/callback” external.callback.url: “http://localhost:8070/callback” token.url: “???” ``` ### [](#トークン-url-を追加する)トークン URL を追加する プロセスを完了するには、​`token.url`​ プロパティを追加します。Mule アプリケーションが (認証コールバック URL を介して) 認証コードを取得したら、OAuth は ​`token.url`​ からアクセストークンを要求します。 ```YAML host: "anypoint.mulesoft.com" port: "443" resource: "/apiplatform/repository/v2/organizations//environments" local.authorization.url: "http://localhost:8070/authorize" authorization.url: “https://anypoint.mulesoft.com/accounts/api/v2/oauth2/authorize” connected.app.client.id: “pasteWhatYouCopiedWithCopyIdButton” connected.app.client.secret: “pasteWhatYouCopiedWithCopySecretButton” local.callback.path: “/callback” external.callback.url: “http://localhost:8070/callback” token.url: “https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token” ``` ### [](#mule-アプリケーションを実行する)Mule アプリケーションを実行する Mule アプリケーションを実行して認証コード取得するには、次の手順を実行します。 1. ブラウザーで、フロー ​`[http://localhost:8070/test](http://localhost:8070/test)`​ の URL を入力します。 Anypoint Platform でログインが求められます。 2. ログイン情報を使用して Anypoint Platform にログインします。 Anypoint Platform でアカウントへのアクセスを認証するように求められます。これで、接続アプリケーションが代理で機能します。 3. **\[Grant access to (アクセス権の付与)\]**​ をクリックします。 認証コードは ​`[http://localhost:8070/callback](http://localhost:8070/callback)`​ エンドポイントに送信され、Mule アプリケーションは ​`[https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token](https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token)`​ からトークンを取得します。 OAuth2 ダンスの開始に使用したブラウザーに、本文テキストとして ​`Successfully retrieved access token`​ が表示されます。 4. 保護されたリソースにアクセスするには、ブラウザーにフローの URL ​`[http://localhost:8070/test](http://localhost:8070/test)`​ を再度入力します。 アプリケーションは、取得したトークンを使用して要求を処理します。 ## [](#oauth2-client-authentication)OAuth2 クライアントログイン情報許可種別認証を設定する OAuth 認証サーバー (OAS) は、OAuth で保護されるリソースが保持されるサーバーです。たとえば、Box サーバーは OAuth 認証のある API を提供します。 HTTP Connector では OAuth 2.0 のみがサポートされています。 クライアントアプリケーション (CA) は、リソースオーナー (RO) に属する保護されたリソースへのアクセスを試みるサーバーです。たとえば、Box サーバーにある Box ユーザーに属するリソースへのアクセスを試みる Mule サーバーです。 この場合、RO は CA でもあります。つまり、RO によって CA が暗黙的に認証されるため、手順全体が大幅に簡素化されます。 次の図は、CA と OAS の関係を示しています。 ![CA と OAS の OAuth2 ダンス](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-authentication-diagram-4.png) 保護されたリソースにアクセスする手順は、次のとおりです。 1. CA はアプリケーションを OAS サーバーに登録する必要があります。これが行われると、OAS がログイン情報を CA に割り当て、CA はそれを後で使用して身元証明に使用できます (​`client ID`​ と ​`client secret`​)。OAS は ​`Token URL`​ も提供する必要があります。CA は、後でこのトークン URL に HTTP 要求を送信し、保護されたリソースへのアクセス時に必要な ​`access token`​ を取得できます。 2. CA は、OAS の ​`Token URL`​ に対して、身元を証明するためのクライアント ID が含まれる要求を実行します。応答として、OAS は CA に ​`access token`​ を付与します。 3. このアクセストークンがあると、CA は、要求にアクセストークンが含まれている限り、OAS にある保護されたリソースに自由にアクセスできるようになります。OAS が定義したポリシーに応じて、トークンがそのうち期限切れになることがあります。 クライアントログイン情報許可種別は、クライアントアプリケーションが、OAS のリソースオーナーの代理ではなく、それ自体の代理としてアプリケーションにアクセス権を付与するためのものです。アクセストークンを取得するために必要なのは、アプリケーションのログイン情報のみです。 HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別を設定するには、​**\[Authentication (認証)\]**​ 項目を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 1. Studio で、OAuth クライアントログイン情報許可種別を使用する \[HTTP Request Configuration (HTTP 要求設定)\] グローバル要素を選択します。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. 次の項目を設定します。 - **Client id (クライアント ID)**​ アプリケーション登録時に GitHub から指定されたクライアント ID。 - **Client Secret (クライアントシークレット)**​ アプリケーション登録時に GitHub から指定されたクライアントシークレット。 - **Scopes (スコープ)**​ OAuth のスコープはセキュリティロールに似ています。 - **Token URL (トークン URL)**​ Mule クライアントアプリケーションはトークンをトークン URL に送信します。 ![クライアントログイン情報許可種別の設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-oauthcc-authentication-1.png) 1. **\[OK\]**​ をクリックします。 Mule アプリケーションは、デプロイ時にアクセストークンの取得を試みます。Mule アプリケーションがアクセストークンを取得できない場合、デプロイメントは失敗します。 ### [](#クライアントログイン情報許可種別認証を設定する-xml)クライアントログイン情報許可種別認証を設定する XML 次のコードは、XML でクライアントログイン情報許可種別認証を設定する方法を示しています。 ```xml ``` ### [](#oauth2-クライアントログイン情報のパラメーターの抽出を設定する)OAuth2 クライアントログイン情報のパラメーターの抽出を設定する OAuth2 認証コード許可種別に適用される、トークン URL からパラメーターを抽出する動作は、クライアントログイン情報許可種別にも適用されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. 次の項目のデフォルトのオプションを確認します。 - **Response access token (応答アクセストークン)**​: `#[payload.access_token]` - **Response refresh token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response expires in (応答有効期限)**​: `#[payload.expires_in]` ![クライアントログイン情報許可種別の \[Response access token (応答アクセストークン)\] 項目、\[Response refresh token (応答更新トークン)\] 項目、\[Response expires in (応答有効期限)\] 項目の設定](_images/http-oauthcc-extractparameters.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`responseAccessToken`​、​`responseRefreshToken`​、および ​`responseExpiresIn`​ の設定は次のように記述されます。 ```xml ``` ### [](#oauth2-クライアントログイン情報の更新アクセストークン条件を設定する)OAuth2 クライアントログイン情報の更新アクセストークン条件を設定する OAuth2 認証コード許可種別に適用される、トークン URL からパラメーターを抽出する動作は、クライアントログイン情報許可種別にも適用されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. **\[Refresh Token When (更新トークン条件)\]**​ を ​**\[Expression (式)\]**​ に設定します。 4. 式ボックスに次の DataWeave 式を追加します。 ​`#[attributes.statusCode == 401]` ![OAuth2 クライアントログイン情報許可種別の \[Response Token When (応答トークン条件)\] 項目の設定](_images/http-oauthcc-refreshtoken.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`refreshTokenWhen`​ 設定は次のように記述されます。 ```xml ``` ## [](#トークンマネージャーを設定する)トークンマネージャーを設定する クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャーを設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. **\[Token manager (トークンマネージャー)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. プラス記号 (​**+**​) をクリックして、オブジェクトストアを参照する新しい設定を作成します。 ![トークンマネージャーの設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-oauth-tokenmanager-1.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`tokenManager-ref`​ 属性は ​`token-manager-config`​ 要素を次のように参照しています。 ```xml ``` ### [](#トークンマネージャー-認証へのアクセス)トークンマネージャー - 認証へのアクセス トークンマネージャーを認証許可種別に関連付けたら、OAuth Module の操作を Mule アプリケーションフロー内の任意の場所で使用して、OAuth 認証からの情報にアクセスできます。 1 つのリソースオーナーでクライアントログイン情報または認証コードを使用する場合、フローでは次の OAuth Module 操作を使用します。次の操作では、トークンマネージャーから OAuth 認証情報にアクセスできます。 ```xml ``` 複数のリソースオーナーで認証コードを使用する場合、次の OAuth Module 操作を使用します。 ```xml ``` #### [](#トークンマネージャーの例)トークンマネージャーの例 次の表には、トークンマネージャーから情報を取得する方法の例が含まれます。フローで、OAuth 認証を管理する HTTP ​**Reuqest**​ 操作の後にこれらの OAuth Module 操作を配置します。
関数 結果

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" target="accessToken"/>

accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" resourceOwnerId="Peter" target="accessToken"/>

ID ​Peter​ で識別されるリソースオーナーの ​accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-refresh-token tokenManager="tokenManagerConfig" target="refreshToken"/>

refreshToken​ 値には、DataWeave から ​vars.refreshToken​ を使用してアクセスできます。

<oauth:retrieve-expires-in tokenManager="tokenManagerConfig" target="expiresIn"/>

Expires in (期限) 値には、DataWeave から ​vars.expiresIn​ を使用してアクセスできます。

<oauth:retrieve-state tokenManager="tokenManagerConfig" target="state"/>

認証 URL に使用される State (状態) には、DataWeave から ​vars.state​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" key="a_custom_param_name" target="customParam"/>

トークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" resourceOwnerId="Peter" key="a_custom_param_name" target="customParam"/>

リソースオーナー ​Peter​ のトークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

### [](#トークンマネージャーのアクセストークンの無効化を設定する)トークンマネージャーのアクセストークンの無効化を設定する トークンマネージャーの使用時に、特定のリソースオーナーをブロックできます。 1. Studio で、OAuth Module の ​**Invalidate oauth context**​ 操作をフローにドラッグします。 2. プロパティエディターで、OAuth 認証の管理時に HTTP ​**Request**​ 操作が参照するものと同じトークンマネージャーを参照するようにトークンマネージャーを設定します。 3. **\[Resource owner Id (リソースオーナー ID)\]**​ を、クリアするリソースオーナーを参照する式に設定します (例: `#[vars.resourceOwnerId]`​)。 ![トークンマネージャーの設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-oauth-tokenmanager-2.png) **設定 XML**​ エディターでは、​`invalidate-oauth-context`​ 設定は次のように記述されます。 ```xml ``` **Invalidate oauth context**​ 操作は、トークンマネージャー内に保存されているすべての OAuth 情報をすべて削除します。 1 つのトークンマネージャーで複数のリソースオーナーを使用する場合、あるリソースオーナーの OAuth 情報のみをクリアするには、\[Invalidate OAuth Context (OAuth コンテキストの無効化)\] 要素にリソースオーナー ID を指定します。 ```xml ``` ### [](#トークンマネージャーのオブジェクトストアの設定)トークンマネージャーのオブジェクトストアの設定 デフォルトでは、トークンマネージャーは永続的なオブジェクトストアを使用してログイン情報を保存します。​**\[Object store (オブジェクトストア)\]**​ 項目を使用して、トークンマネージャーのオブジェクトストアを設定できます。 オブジェクトストアについての詳細は、​[カスタムオブジェクトストアの設定](https://docs.mulesoft.com/object-store-connector/latest/object-store-to-define-a-new-os)​に関するドキュメントを参照してください。 ## [](#複数ユーザーの代理でのリソースアクセス)複数ユーザーの代理でのリソースアクセス 複数ユーザーの代理でリソースにアクセスする必要がある場合、HTTP Connector を使用する代わりに SDK Connector を OAuth Module と組み合わせて使用します。 ## [](#関連情報)関連情報 - [HTTP Connector の概要](https://docs.mulesoft.com/jp/http-connector/1.7/) - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.7/http-connector-xml-reference) - [Object Store v2](https://docs.mulesoft.com/jp/object-store/) # HTTP 要求の認証の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作は、Mule クライアントアプリケーションと、次のいずれかの種別の認証が必要なサービスとの接続をサポートします。 - [基本認証](#basic-authentication) - [ダイジェスト認証](#digest-authentication) - [NTLM 認証](#ntlm-authentication) - [OAuth2 認証コード許可種別認証](#oauth2-grant-authentication) - [OAuth2 クライアントログイン情報許可種別認証](#oauth2-client-authentication) 要求の対象である HTTP サービスで認証が必要な場合、必要なログイン情報を HTTP ​**Request**​ 操作のグローバル設定要素で指定します。Mule Runtime Engine (Mule) は、HTTP 要求の認証ヘッダーに設定されたログイン情報を使用します。 トランスポートレイヤーセキュリティ (TLS) を設定して OAuth ログイン情報を暗号化することもできます。 API または Mule アプリケーションが未認証のソースから要求を受信しないように保護するには、API Manager ポリシーを使用します。​[「外部プロバイダーを使用した OAuth 2.0 アクセストークンの適用」](#api-manager::external-oauth-2.0-token-validation-policy.adoc)​を参照してください。
Anypoint Studio の HTTP ​Request​ 操作のグローバル設定では、​[Authentication (認証)]​ 項目で ​[Expression (式)]​ オプションを使用しないでください。
## [](#http-xml-認証のセットアップ)HTTP XML 認証のセットアップ HTTP Connector の認証の XML 値:
認証種別 XML 値

基本認証

<http:authentication >
  <http:basic-authentication
  username="UN" password="PW"/>
</http:authentication>

NTLM 認証

<http:authentication >
  <http:ntlm-authentication
  domain="DM" workstation="WS"
  username="UN" password="PW" />
</http:authentication>

ダイジェスト認証

<http:authentication >
  <http:digest-authentication
  username="UN" password="PW"/>
</http:authentication>
また、Studio で OAuth コンポーネントの操作をキャンバスに追加すると、次の連動関係がプロジェクトの ​`pom.xml`​ ファイルに自動的に追加されます。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` ## [](#basic-authentication)基本認証を設定する 基本認証メソッドを使用すると、HTTP ユーザーエージェントは HTTP 要求を行うときにユーザー名とパスワードを指定できます。 次の Mule アプリケーションの例は、ユーザー情報の要求を [GitHub API](https://developer.github.com/v3)​ に送信して HTTP ​**Request**​ 操作の基本認証を設定する方法を示しています。この例では、Github API はユーザー情報の要求を ​`https://api.github.com/user`​ へのポート 443 で受け入れます。 基本認証要件を満たすため、Mule アプリケーションは GitHub のユーザー名とパスワードを指定します。このログイン情報を指定するには、HTTP ​**Request**​ 操作を設定します。 この例では、GitHub アカウントが必要です。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 7. **\[Advanced (詳細)\]**​ タブで ​**\[Allowed methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 8. HTTP の ​**\[Request\]**​ 操作を HTTP の ​**\[Listener\]**​ ソースの横にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 10. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `api.github.com` - **Port (ポート)**​: `443` 11. **\[Authentication (認証)\]**​ を ​**\[Basic authentication (基本認証)\]**​ に設定します。 12. **\[Username (ユーザー名)\]**​ を GitHub ユーザー名アカウントに設定します。 13. **\[Password (パスワード)\]**​ を GitHub パスワードアカウントまたは [個人アクセストークン](https://github.com/settings/tokens)​に設定します。 14. **\[Preemptive (プリエンプティブ)\]**​ を ​**\[True (Default) (True (デフォルト))\]**​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求の基本認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-basic-authentication-1.png) 16. HTTP ​**Request**​ 設定ウィンドウで、​**\[Method (メソッド)\]**​ を ​**\[GET (Default) (GET (デフォルト))\]**​ に設定します。 17. **\[Path (パス)\]**​ を ​`/user`​ に設定します。 18. **\[Mule Palette (Mule パレット)\]**​ で、​**\[Core (コア)\] > \[Transform message\]**​ を選択します。 19. **\[Transform message\]**​ コンポーネントを HTTP の ​**\[Request\]**​ 操作の右にドラッグします。 20. **\[Output (出力)\]**​ プロパティウィンドウで、出力を次の DataWeave コードに変更します。 ```dataweave %dw 2.0 output application/json --- payload ``` 21. Mule アプリケーションを保存します。 22. **\[Run (実行)\] > \[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ をクリックします。 23. API をコールするには、インターネットブラウザーに ​`http://localhost:8081/`​ を入力します。 GitHub API がユーザー情報を返します。次に例を示します。 ```json { "login":"kahn", "id":16xxx343, "avatar_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"` ... } ``` ブラウザーで ​`HTTP GET on resource 'https://api.github.com:443/user' failed: unauthorized (401)`​ が返された場合、GitHub パスワードを指定する代わりに [個人アクセストークン](https://github.com/settings/tokens)​を使用します。新しいトークンを生成する場合、​**\[user\]**​ > ​**\[read:user\]**​ スコープのみが必要です。 ### [](#基本認証を設定する-xml-の例)基本認証を設定する XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#digest-authentication)ダイジェスト認証を設定する ダイジェスト認証メソッドを使用すると、Web サーバーはユーザーの Web ブラウザーを介してユーザーログイン情報を検証できます。 次の例は、​`GET`​ 要求を URL ​`http://www.example.com/test`​ に送信し、指定されたユーザー名とパスワードを含む認証ヘッダーを追加して、HTTP ​**Request**​ 操作のダイジェスト認証を設定する方法を示しています。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Method (メソッド)\]**​ を ​`GET`​ に、​**\[Path (パス)\]**​ を ​`test`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `example.com` - **Port (ポート)**​: `8081` 5. **\[Authentication (認証)\]**​ を ​**\[Digest authentication (ダイジェスト認証)\]**​ に設定します。 6. **\[Username (ユーザー名)\]**​ を ​`Username`​ に設定します。 7. **\[Password (パスワード)\]**​ を ​`Password`​ に設定します。 8. **\[OK\]**​ をクリックします。 ![HTTP 要求のダイジェスト認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-digest-authentication-1.png) ### [](#ダイジェスト認証を設定する-xml-の例)ダイジェスト認証を設定する XML の例 次のコードは、XML でダイジェスト認証を設定する方法を示しています。 ```xml ... ... ``` ## [](#ntlm-authentication)NTLM 認証を設定する NT LAN Manager (NTLM) 認証で、以前の Microsoft 製品である Microsoft LAN Manager (LANMAN) の認証プロトコルが置き換えられました。 次の例は、​`GET`​ 要求を URL ​`http://www.example.com/test`​ に送信し、指定されたユーザー名とパスワードを含む認証ヘッダーを追加して、HTTP ​**Request**​ 操作の NTLM 認証を設定する方法を示しています。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Method (メソッド)\]**​ を ​`GET`​ に、​**\[Path (パス)\]**​ を ​`test`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `example.com` - **Port (ポート)**​: `8081` 5. **\[Authentication (認証)\]**​ を ​**\[Ntlm authentication (NTLM 認証)\]**​ に設定します。 6. **\[Username (ユーザー名)\]**​ を ​`Username`​ に設定します。 7. **\[Password (パスワード)\]**​ を ​`Password`​ に設定します。 8. **\[Domain (ドメイン)\]**​ と ​**\[Workstation (ワークステーション)\]**​ を設定します (省略可能)。 9. **\[OK\]**​ をクリックします。 ![HTTP 要求の NTLM 認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-NTLM-authentication-1.png) ### [](#ntlm-認証を設定する-xml)NTLM 認証を設定する XML 次のコードは、XML で NTLM 認証を設定する方法を示しています。 ```xml ... ``` ## [](#oauth2-grant-authentication)OAuth2 認証コード許可種別認証を設定する OAuth2 認証コードでは、OAuth 2.0 認証コード許可種別を設定します。OAuth 認証サーバーには、OAuth で保護されるリソースが保持されています。たとえば、GitHub API への API コールを [OAuth を使用する GitHub サーバー](https://developer.github.com/v3/oauth/)​で認証できます。 HTTP Connector では OAuth 2.0 のみがサポートされています。 次の例は、GitHub OAuth 認証サーバー上の保護されたリソースである GitHub ユーザーデータにアクセスする Mule アプリケーションを作成して、HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別認証を設定する方法を示しています。この例では次の方法を説明します。 - 認証のセットアップ - Mule アプリケーションの作成 - Mule アプリケーションの実行 この例では、GitHub アカウントが必要です。 Mule アプリケーションを作成する前に、次の図で、OAuth アクセストークンを取得してデータのトークンを返す手順を確認してください。 ![OAuth アクセストークンの取得](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-authentication-diagram-2.png) 1. GitHub アクセスへの HTTP 要求をクライアントアプリケーションに送信します。 2. クライアントアプリケーションは要求を GitHub 認証サーバーにリダイレクトします。 3. GitHub はログイン情報を要求します。 4. ログインしてクライアントアプリケーションを認証します。 5. GitHub 認証サーバーはアクセストークンを返します。 6. クライアントアプリケーションは次の要求をリスンします。 ![データのトークンを返す](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-authentication-diagram-3.png) 1. アクセストークンを使用して保護されたユーザーデータを要求します。 2. ユーザーデータの要求をリダイレクトします。 3. クライアントアプリケーションは GitHub 認証サーバーからユーザーデータを取得します。 4. クライアントアプリケーションは次の要求をリスンします。 ### [](#認証のセットアップ)認証のセットアップ 認証をセットアップする手順は、次のとおりです。 ![認証のセットアップ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-authentication-diagram-1.png) 1. クライアントアプリケーションを認証サーバーに登録します。 認証サーバーが Mule アプリケーションにクライアント ID とクライアントシークレットを割り当てます。アプリケーションは、このログイン情報を使用して認証サーバーに身元を証明します。登録時には、Mule アプリケーションホームページへの URL とアプリケーションコールバック URL も指定します。 2. GitHub にログインします。 3. GitHub の \[Personal settings (個人設定)\] で、 [アプリケーションを登録](https://github.com/settings/applications/new)​します。 4. **\[Register a new OAuth application (新規 OAuth アプリケーションの登録)\]**​ ページで、次の項目に入力します。 - **Application name (アプリケーション名)**​: `oauth-grant-code` - **Homepage URL (ホームページ URL)**​: `http://localhost:8082` - **Authorization callback URL (認証コールバック URL)**​: `http://localhost:8082/callback` 5. **\[Register application (アプリケーションを登録)\]**​ をクリックします。 GitHub で、登録されたアプリケーションのページが ​`https://github.com/settings/applications/`​ に作成されます。このページには、GitHub で割り当てられたクライアント ID とクライアントシークレットが含まれます。 ### [](#mule-アプリケーションを作成する)Mule アプリケーションを作成する GitHub で割り当てられたクライアント ID とクライアントシークレットを使用して GitHub OAuth2 認証サーバー上にあるユーザーデータにアクセスする Mule アプリケーションを作成します。 Mule アプリケーションは、HTTP ​**Listener**​ ソース、HTTP ​**Request**​ 操作、およびプレーンテキストを JSON に変換する DataWeave ​**Transform message**​ コンポーネントで構成されます。HTTP ​**Request**​ 操作で、認証サーバーへのアクセスを設定します。Mule アプリケーションを作成する手順は、次のとおりです。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[HTTP\] > \[Request\]**​ 操作を ​**\[Listener\]**​ ソースの右にドラッグします。 7. **Package Explorer**​ ウィンドウを展開します。 8. Mule アプリケーションプロジェクトを展開します。 9. `pom.xml`​ ファイルを開きます。 10. ``​ セクションの最後で、​``​ ステートメントの前に次のステートメントを追加し、​**Request**​ 操作の OAuth オプションを有効化します。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` 11. フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 12. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 13. 次の必須項目を入力します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` OAuth 認証サーバーはこの URL を使用して認証コードを Mule サーバーに提供します。これで、Mule サーバーはアクセストークンを取得できます。これは、ローカルのアドレスではなく、外部に表示できるコールバックアドレスである必要があります。 - **Local authorization url (ローカル認証 URL)**​: `https://localhost:8082/login` この URL により、アカウントに対してアプリケーションへのアクセスを認証して許可できます。 - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` この URL により、Mule アプリケーションからのユーザー要求は GitHub 認証サーバーの認証 URL にリダイレクトされます。 - **Client id (クライアント ID)**​ アプリケーション登録時に GitHub から指定されたクライアント ID。 - **Client Secret (クライアントシークレット)**​ - **Token Manager (トークンマネージャー)**​ クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャーを設定します。トークンマネージャーを設定しない場合、新しい要求のたびに OAuth Module が再初期化されます。 アプリケーション登録時に GitHub から指定されたクライアントシークレット。 - **Token url (トークン URL)**​: `https://github.com/login/oauth/access_token` Mule クライアントアプリケーションはトークンをトークン URL に送信します。 さらに、次の省略可能な項目を設定できます。 - **Local callback url (ローカルコールバック URL)**​: `http://localhost:8082/callback` この URL は、GitHub にアプリケーションを登録したときに設定した ​**External callback url (外部コールバック URL)**​ の値と同じです。これは、リモートホストから ​**External callback url (外部コールバック URL)**​ に送信された要求を受信するために Mule が作成するサーバーの設定です。外部と内部のコールバック URL は同じです。一方の URL でランタイムでサーバーを作成し (内部)、もう一方の URL でインターネットでサーバーを参照できます (外部)。 - **Response Access Token (応答アクセストークン)**​: `#[payload.access_token]` この DataWeave 式は、アクセストークンを抽出します。 - **Response Refresh Token (応答更新トークン)**​: `[payload.access_token]` プロバイダーが更新トークンを送信する場合、更新トークンには ​`[payload.refresh_token]`​ のように DataWeave 式を使用します。ただし、この例では GitHub が実際に更新トークンを使用することはありません。 ![認証コード許可種別認証の設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-oauth-authentication-1.png) 14. **\[OK\]**​ をクリックします。 15. Mule アプリケーションを保存します。 ### [](#mule-クライアントアプリケーションを実行する)Mule クライアントアプリケーションを実行する Mule クライアントアプリケーションを実行し、GitHub ユーザーデータを取得するには、アクセストークンの有効期限が切れる前に次の手順を実行します。 1. **Package Explorer**​ ウィンドウで、プロジェクト名を右クリックし、​**\[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ を選択します。 コンソールに Mule アプリケーションがデプロイされていることが表示されます。 2. ブラウザーで、ローカル認証 URL ​`http://localhost:8082/login`​ を入力して、 [OAuth2 ダンス](https://tools.ietf.org/html/rfc6749#section-4.1)​を開始します。 GitHub がログインを促します。 3. GitHub のユーザー名とパスワードを使用してログインします。 GitHub が、登録されたアプリケーションの実行を認証するように促します。 ![Github の \[Authorize application (アプリケーションを認証)\] ページ](_images/http-authentication-githubpage.png) 4. **\[Authorize application (アプリケーションを認証)\]**​ をクリックします。 OAuth2 ダンスの開始に使用したブラウザーに、本文テキストとして ​`Successfully retrieved access token`​ が表示されます。 5. トークンでデータを取得するには、ブラウザーに次の URL を入力します。 `http://localhost:8081/github` GitHub API がユーザー情報を返します。 { "login":"kahn", "id":16xxx343,"avatar\_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"\` ... } ### [](#oauth2-認証コードを設定する-xml-の例)OAuth2 認証コードを設定する XML の例 次のコードは、XML で OAuth2 認証コードを設定する方法を示しています。 ```xml ``` ### [](#oauth2-認証スコープを設定する)OAuth2 認証スコープを設定する OAuth のスコープはセキュリティロールに似ています。​**\[Scopes (スコープ)\]**​ 項目で、認証サーバーで使用可能な OAuth スコープのカンマ区切りリストを定義して、OAuth2 認証コード許可種別のスコープを設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. グローバル要素を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 4. **\[Scopes (スコープ)\]**​ を ​`access_user_details, read_user_files`​ に設定します。 ![OAuth 認証の \[Scopes (スコープ)\] 項目の設定](_images/http-oauth-scopes.png) 5. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`scopes`​ 設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証のカスタムパラメーターを設定する)OAuth2 認証のカスタムパラメーターを設定する OAuth 実装で、OAuth 認証サーバー (OAS) の認証 URL をコールするときに、追加のクエリパラメーターの送信を要求または許可する場合があります。OAuth2 認証コード許可種別の次のパラメーターを ​**\[Custom parameters (カスタムパラメーター)\]**​ 項目で設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. グローバル要素を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 4. 次の項目を設定します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` - **Local authorization url (ローカル認証 URL)**​: `http://localhost:8082/login` - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` - **Client id (クライアント ID)**​: GitHub アカウントのクライアント ID - **Client secret (クライアントシークレット)**​: GitHub アカウントのクライアントシークレット - **Token url (トークン URL)**​: `https://github.com/login/oauth/access_token` 5. **\[Custom parameters (カスタムパラメーター)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. プラス記号 (​**+**​) をクリックして、新しいカスタムパラメーターを追加します。 7. **\[Key (キー)\]**​ を ​`box_device_id`​ に、​**\[Value (値)\]**​ を ​`123142`​ に設定します。 8. ステップ 6 を繰り返します。 9. **\[Key (キー)\]**​ を ​`box_device_name`​ に、​**\[Value (値)\]**​ を ​`my-phone`​ に設定します。 ![OAuth 認証の \[Custom Parameters (カスタムパラメーター)\] 項目の設定](_images/http-oauth-customparameter.png) 10. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`oauth:custom-parameter`​ 設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証のリダイレクト-uri-を設定する)OAuth2 認証のリダイレクト URI を設定する [OAuth 2.0 仕様](https://tools.ietf.org/html/rfc6749)​には、リダイレクトの宛先サイトからリダイレクト URI をチェックする方法が説明されています。OAuth 認証サーバーはこの URL を使用して、アクセストークンを取得するための認証コードを Mule サーバーに提供します。この URL を指定する場合、Mule はその URL にエンドポイントを作成して認証コードを保存します。ただし、手動で認証コードを抽出するためのエンドポイントがすでに登録されていている場合は除きます。 リダイレクト URI (外部 ​`redirect_uri`​) を上書きするには、​**\[External callback url (外部コールバック URL)\]**​ 項目で外部リダイレクト URI を設定します。これは、CloudHub にアプリケーションをデプロイするなどのアクションに役立ちます。認証を設定するときに、必要に応じて ​**\[Local callback url (ローカルコールバック URL)\]**​ 項目も設定できます。 CloudHub の場合、Mule はエンドポイントを次のような形式で作成する必要があります。 `https://.cloudhub.io/` Mule に、正しい形式で CloudHub のエンドポイントを作成するように指示するには、OAuth2 認証コード許可種別設定に ​**\[External callback url (外部コールバック URL)\]**​ 項目を含めます。 ### [](#oauth2-認証のパラメーターの抽出を設定する)OAuth2 認証のパラメーターの抽出を設定する 認証サーバーから認証コードを取得したら、OAuth はサーバーのトークン URL からアクセストークンを要求します。 トークン URL への応答の形式は、OAuth 仕様では定義されていません。実装ごとに異なる応答形式が返されることがあります。デフォルトでは、Mule は応答が JSON 形式であることを期待します。この場合、次の項目が指定されていれば、HTTP 要求は必要な情報の抽出方法を判断できます。 - **Response access token (応答アクセストークン)**​ JSON 項目が ​`access_token`​。 - **Response refresh token (応答更新トークン)**​ JSON 項目が ​`refresh_token`​。 - **Response expires in (応答有効期限)**​ JSON 項目が ​`expires_in`​。 応答が JSON 形式の場合、パラメーターは自動的に抽出されるため、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して、トークン URL への応答内のこれらの値を参照できます。 応答が JSON 形式ではない場合、最初にコネクタを設定して、これらの値の抽出方法がわかるようにする必要があります。 次の例では、HTTP Connector は応答の ​`Content-Type`​ が ​`application/x-www-form-urlencoded`​ であることを期待するため、応答の本文はペイロードのマッピングに変換されます。​`#[payload.access_token]`​ (​**Response access token (応答アクセストークン)**​ と ​**Response refresh token (応答更新トークン)**​ のデフォルト値) など、DataWeave 式を使用してマッピングから値を抽出します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. 次の項目のデフォルトのオプションを確認します。 - **Response access token (応答アクセストークン)**​: `#[payload.access_token]` - **Response refresh token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response expires in (応答有効期限)**​: `#[payload.expires_in]` ![OAuth 認証の \[Response access token (応答アクセストークン)\] 項目、\[Response refresh token (応答更新トークン)\] 項目、\[Response expires in (応答有効期限)\] 項目の設定](_images/http-oauth-extractparameters.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`responseAccessToken`​、​`responseRefreshToken`​、および ​`responseExpiresIn`​ の設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証の更新トークン条件を設定する)OAuth2 認証の更新トークン条件を設定する トークン URL から取得するアクセストークンは、そのうち期限切れになります。トークンの有効期間の長さは、認証サーバーの実装に応じて異なります。アクセストークンの期限が切れたら、プロセス全体をもう一度実行するのではなく、トークン URL 応答で提供される更新アクセストークンを使用して、新しいアクセストークンを取得できます。 Mule では、この動作が自動的に管理されます。デフォルトでは、HTTP 要求が実行され、応答の状況コードが 401 の場合、Mule はトークン URL をコールして新しいアクセストークンを取得します。 Mule がいつこれらの要求のいずれかを実行し、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して新しいアクセストークンを取得するかを設定できます。式は HTTP 要求コールの応答に対して評価されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. **\[Request Token When (要求トークン条件)\]**​ を ​**\[Expression (式)\]**​ に設定します。 4. 式ボックスに次の DataWeave 式を追加します。 ​`#[payload.response.status == 'unauthorized']` ![OAuth 認証の \[Response Token When (応答トークン条件)\] 項目の設定](_images/http-oauth-refreshtoken.png) **設定 XML**​ エディターでは、​`refreshTokenWhen`​ 設定は次のように記述されます。 ```xml ``` 要求の認証が失敗したら、応答には名前が ​`status`​ で値が ​`'unauthorized'`​ の XML ノードが含まれます。前の例では、DataWeave 式がその条件を評価します。条件が true と評価されると、Mule は要求をトークン URL に送信して新しいアクセストークンを取得します。 ### [](#oauth-認証の-https-を設定する)OAuth 認証の HTTPS を設定する 本番環境のように、認証サーバーとの通信に HTTPS を使用する必要がある場合、HTTPS エンコードをすべての要求 (以下に対する要求を含む) の OAuth ログイン情報に適用します。 - **Local authorization url (ローカル認証 URL)** - **Authorization url (認証 URL)** - **Redirect url (リダイレクト URL)** - **Token url (トークン URL)** OAuth 認証コード許可種別の HTTPS を設定する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[TLS Configuration (TLS 設定)\]**​ を ​**\[Global Reference (グローバル参照)\]**​ に設定します。 ![Global reference に設定された \[TLS Configuration (TLS 設定)\] 項目](_images/http-oauth-tls-1.png) 3. 項目の横にある緑のプラス記号 (​**+**​) をクリックして新規 TLS コンテキストを作成します。 4. **\[Trust Store Configuration (トラストストア設定)\]**​ で、次の項目を設定します。 - **Path (パス)**​: `your_trust_store` - **Password (パスワード)**​: `your_password` 5. **\[Kye Store Configuration (キーストア設定)\]**​ で、次の項目を設定します。 - **Path (パス)**​: `your_keystore_path` - **Key Password (キーパスワード)**​: `your_key_password` - **Password (パスワード)**​: `your_password` ![TLS コンテキストのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-oauth-tls-2.png) 1. **\[OK\]**​ をクリックします。 **\[Configuration XML (設定 XML)\]**​ エディターで、​`tls:context`​、​`tls:trust-store`​、および ​`tls:key-store`​ の設定は次のように記述されます。 ```xml ``` ## [](#oauth2-client-authentication)OAuth2 クライアントログイン情報許可種別認証を設定する OAuth 認証サーバー (OAS) は、OAuth で保護されるリソースが保持されるサーバーです。たとえば、Box サーバーは OAuth 認証のある API を提供します。 HTTP Connector では OAuth 2.0 のみがサポートされています。 クライアントアプリケーション (CA) は、リソースオーナー (RO) に属する保護されたリソースへのアクセスを試みるサーバーです。たとえば、Box サーバーにある Box ユーザーに属するリソースへのアクセスを試みる Mule サーバーです。 この場合、RO は CA でもあります。つまり、RO によって CA が暗黙的に認証されるため、手順全体が大幅に簡素化されます。 次の図は、CA と OAS の関係を示しています。 ![CA と OAS の OAuth2 ダンス](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-authentication-diagram-4.png) 保護されたリソースにアクセスする手順は、次のとおりです。 1. CA はアプリケーションを OAS サーバーに登録する必要があります。これが行われると、OAS がログイン情報を CA に割り当て、CA はそれを後で使用して身元証明に使用できます (​`client ID`​ と ​`client secret`​)。OAS は ​`Token URL`​ も提供する必要があります。CA は、後でこのトークン URL に HTTP 要求を送信し、保護されたリソースへのアクセス時に必要な ​`access token`​ を取得できます。 2. CA は、OAS の ​`Token URL`​ に対して、身元を証明するためのクライアント ID が含まれる要求を実行します。応答として、OAS は CA に ​`access token`​ を付与します。 3. このアクセストークンがあると、CA は、要求にアクセストークンが含まれている限り、OAS にある保護されたリソースに自由にアクセスできるようになります。OAS が定義したポリシーに応じて、トークンがそのうち期限切れになることがあります。 クライアントログイン情報許可種別は、クライアントアプリケーションが、OAS のリソースオーナーの代理ではなく、それ自体の代理としてアプリケーションにアクセス権を付与するためのものです。アクセストークンを取得するために必要なのは、アプリケーションのログイン情報のみです。 HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別を設定するには、​**\[Authentication (認証)\]**​ 項目を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 1. Studio で、OAuth クライアントログイン情報許可種別を使用する \[HTTP Request Configuration (HTTP 要求設定)\] グローバル要素を選択します。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. 次の項目を設定します。 - **Client id (クライアント ID)**​ アプリケーション登録時に GitHub から指定されたクライアント ID。 - **Client Secret (クライアントシークレット)**​ アプリケーション登録時に GitHub から指定されたクライアントシークレット。 - **Scopes (スコープ)**​ OAuth のスコープはセキュリティロールに似ています。 - **Token URL (トークン URL)**​ Mule クライアントアプリケーションはトークンをトークン URL に送信します。 ![クライアントログイン情報許可種別の設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-oauthcc-authentication-1.png) 1. **\[OK\]**​ をクリックします。 Mule アプリケーションは、デプロイ時にアクセストークンの取得を試みます。Mule アプリケーションがアクセストークンを取得できない場合、デプロイメントは失敗します。 ### [](#クライアントログイン情報許可種別認証を設定する-xml)クライアントログイン情報許可種別認証を設定する XML 次のコードは、XML でクライアントログイン情報許可種別認証を設定する方法を示しています。 ```xml ``` ### [](#oauth2-クライアントログイン情報のパラメーターの抽出を設定する)OAuth2 クライアントログイン情報のパラメーターの抽出を設定する OAuth2 認証コード許可種別に適用される、トークン URL からパラメーターを抽出する動作は、クライアントログイン情報許可種別にも適用されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. 次の項目のデフォルトのオプションを確認します。 - **Response access token (応答アクセストークン)**​: `#[payload.access_token]` - **Response refresh token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response expires in (応答有効期限)**​: `#[payload.expires_in]` ![クライアントログイン情報許可種別の \[Response access token (応答アクセストークン)\] 項目、\[Response refresh token (応答更新トークン)\] 項目、\[Response expires in (応答有効期限)\] 項目の設定](_images/http-oauthcc-extractparameters.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`responseAccessToken`​、​`responseRefreshToken`​、および ​`responseExpiresIn`​ の設定は次のように記述されます。 ```xml ``` ### [](#oauth2-クライアントログイン情報の更新アクセストークン条件を設定する)OAuth2 クライアントログイン情報の更新アクセストークン条件を設定する OAuth2 認証コード許可種別に適用される、トークン URL からパラメーターを抽出する動作は、クライアントログイン情報許可種別にも適用されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. **\[Request Token When (要求トークン条件)\]**​ を ​**\[Expression (式)\]**​ に設定します。 4. 式ボックスに次の DataWeave 式を追加します。 ​`#[payload.response.status == 'unauthorized']` ![OAuth2 クライアントログイン情報許可種別の \[Response Token When (応答トークン条件)\] 項目の設定](_images/http-oauthcc-refreshtoken.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`refreshTokenWhen`​ 設定は次のように記述されます。 ```xml ``` ## [](#トークンマネージャーを設定する)トークンマネージャーを設定する クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャーを設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. **\[Token manager (トークンマネージャー)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. プラス記号 (​**+**​) をクリックして、オブジェクトストアを参照する新しい設定を作成します。 ![トークンマネージャーの設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-oauth-tokenmanager-1.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`tokenManager-ref`​ 属性は ​`token-manager-config`​ 要素を次のように参照しています。 ```xml ``` ### [](#トークンマネージャー-認証へのアクセス)トークンマネージャー - 認証へのアクセス トークンマネージャーを認証許可種別に関連付けたら、OAuth Module の操作を Mule アプリケーションフロー内の任意の場所で使用して、OAuth 認証からの情報にアクセスできます。 1 つのリソースオーナーでクライアントログイン情報または認証コードを使用する場合、フローでは次の OAuth Module 操作を使用します。次の操作では、トークンマネージャーから OAuth 認証情報にアクセスできます。 ```xml ``` 複数のリソースオーナーで認証コードを使用する場合、次の OAuth Module 操作を使用します。 ```xml ``` #### [](#トークンマネージャーの例)トークンマネージャーの例 次の表には、トークンマネージャーから情報を取得する方法の例が含まれます。フローで、OAuth 認証を管理する HTTP ​**Reuqest**​ 操作の後にこれらの OAuth Module 操作を配置します。
関数 結果

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" target="accessToken"/>

accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" resourceOwnerId="Peter" target="accessToken"/>

ID ​Peter​ で識別されるリソースオーナーの ​accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-refresh-token tokenManager="tokenManagerConfig" target="refreshToken"/>

refreshToken​ 値には、DataWeave から ​vars.refreshToken​ を使用してアクセスできます。

<oauth:retrieve-expires-in tokenManager="tokenManagerConfig" target="expiresIn"/>

Expires in (期限) 値には、DataWeave から ​vars.expiresIn​ を使用してアクセスできます。

<oauth:retrieve-state tokenManager="tokenManagerConfig" target="state"/>

認証 URL に使用される State (状態) には、DataWeave から ​vars.state​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" key="a_custom_param_name" target="customParam"/>

トークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" resourceOwnerId="Peter" key="a_custom_param_name" target="customParam"/>

リソースオーナー ​Peter​ のトークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

### [](#トークンマネージャーのアクセストークンの無効化を設定する)トークンマネージャーのアクセストークンの無効化を設定する トークンマネージャーの使用時に、特定のリソースオーナーをブロックできます。 1. Studio で、OAuth Module の ​**Invalidate oauth context**​ 操作をフローにドラッグします。 2. プロパティエディターで、OAuth 認証の管理時に HTTP ​**Request**​ 操作が参照するものと同じトークンマネージャーを参照するようにトークンマネージャーを設定します。 3. **\[Resource owner Id (リソースオーナー ID)\]**​ を、クリアするリソースオーナーを参照する式に設定します (例: `#[vars.resourceOwnerId]`​)。 ![トークンマネージャーの設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-oauth-tokenmanager-2.png) **設定 XML**​ エディターでは、​`invalidate-oauth-context`​ 設定は次のように記述されます。 ```xml ``` **Invalidate oauth context**​ 操作は、トークンマネージャー内に保存されているすべての OAuth 情報をすべて削除します。 1 つのトークンマネージャーで複数のリソースオーナーを使用する場合、あるリソースオーナーの OAuth 情報のみをクリアするには、\[Invalidate OAuth Context (OAuth コンテキストの無効化)\] 要素にリソースオーナー ID を指定します。 ```xml ``` ### [](#トークンマネージャーのオブジェクトストアの設定)トークンマネージャーのオブジェクトストアの設定 デフォルトでは、トークンマネージャーはメモリ内オブジェクトストアを使用してログイン情報を保存します。​**\[Object store (オブジェクトストア)\]**​ 項目を使用して、トークンマネージャーのオブジェクトストアを設定できます。 オブジェクトストアについての詳細は、​[カスタムオブジェクトストアの設定](https://docs.mulesoft.com/object-store-connector/latest/object-store-to-define-a-new-os)​に関するドキュメントを参照してください。 ## [](#複数ユーザーの代理でのリソースアクセス)複数ユーザーの代理でのリソースアクセス 複数ユーザーの代理でリソースにアクセスする必要がある場合、HTTP Connector を使用する代わりに SDK Connector を OAuth Module と組み合わせて使用します。 ## [](#関連情報)関連情報 - [HTTP Connector の概要](https://docs.mulesoft.com/jp/http-connector/1.8/) - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.8/http-connector-xml-reference) - [Object Store v2](https://docs.mulesoft.com/jp/object-store/) # HTTP 要求の認証の設定 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Request**​ 操作は、Mule クライアントアプリケーションと、次のいずれかの種別の認証が必要なサービスとの接続をサポートします。 - [基本認証](#basic-authentication) - [ダイジェスト認証](#digest-authentication) - [NTLM 認証](#ntlm-authentication) - [OAuth2 認証コード許可種別認証](#oauth2-grant-authentication) - [OAuth2 クライアントログイン情報許可種別認証](#oauth2-client-authentication) 要求の対象である HTTP サービスで認証が必要な場合、必要なログイン情報を HTTP ​**Request**​ 操作のグローバル設定要素で指定します。Mule Runtime Engine (Mule) は、HTTP 要求の認証ヘッダーに設定されたログイン情報を使用します。 トランスポートレイヤーセキュリティ (TLS) を設定して OAuth ログイン情報を暗号化することもできます。 API または Mule アプリケーションが未認証のソースから要求を受信しないように保護するには、API Manager ポリシーを使用します。​[「外部プロバイダーを使用した OAuth 2.0 アクセストークンの適用」](#api-manager::external-oauth-2.0-token-validation-policy.adoc)​を参照してください。
Anypoint Studio の HTTP ​Request​ 操作のグローバル設定では、​[Authentication (認証)]​ 項目で ​[Expression (式)]​ オプションを使用しないでください。
## [](#http-xml-auth-setup)HTTP XML 認証のセットアップ HTTP Connector の認証の XML 値:
認証種別 XML 値

基本認証

<http:authentication >
  <http:basic-authentication
  username="UN" password="PW"/>
</http:authentication>

NTLM 認証

<http:authentication >
  <http:ntlm-authentication
  domain="DM" workstation="WS"
  username="UN" password="PW" />
</http:authentication>

ダイジェスト認証

<http:authentication >
  <http:digest-authentication
  username="UN" password="PW"/>
</http:authentication>
また、Studio で OAuth コンポーネントの操作をキャンバスに追加すると、次の連動関係がプロジェクトの ​`pom.xml`​ ファイルに自動的に追加されます。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` ## [](#basic-authentication)基本認証を設定する 基本認証メソッドを使用すると、HTTP ユーザーエージェントは HTTP 要求を行うときにユーザー名とパスワードを指定できます。 次の Mule アプリケーションの例は、ユーザー情報の要求を [GitHub API](https://developer.github.com/v3)​ に送信して HTTP ​**Request**​ 操作の基本認証を設定する方法を示しています。この例では、Github API はユーザー情報の要求を ​`https://api.github.com/user`​ へのポート 443 で受け入れます。 基本認証要件を満たすため、Mule アプリケーションは GitHub のユーザー名とパスワードを指定します。このログイン情報を指定するには、HTTP ​**Request**​ 操作を設定します。 この例では、GitHub アカウントが必要です。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/path`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 7. **\[Advanced (詳細)\]**​ タブで ​**\[Allowed methods (許可されるメソッド)\]**​ を ​`GET`​ に設定します。 8. HTTP の ​**\[Request\]**​ 操作を HTTP の ​**\[Listener\]**​ ソースの横にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 10. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `api.github.com` - **Port (ポート)**​: `443` 11. **\[Authentication (認証)\]**​ を ​**\[Basic authentication (基本認証)\]**​ に設定します。 12. **\[Username (ユーザー名)\]**​ を GitHub ユーザー名アカウントに設定します。 13. **\[Password (パスワード)\]**​ を GitHub パスワードアカウントまたは [個人アクセストークン](https://github.com/settings/tokens)​に設定します。 14. **\[Preemptive (プリエンプティブ)\]**​ を ​**\[True (Default) (True (デフォルト))\]**​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求の基本認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-basic-authentication-1.png) 16. HTTP ​**Request**​ 設定ウィンドウで、​**\[Method (メソッド)\]**​ を ​**\[GET (Default) (GET (デフォルト))\]**​ に設定します。 17. **\[Path (パス)\]**​ を ​`/user`​ に設定します。 18. **\[Mule Palette (Mule パレット)\]**​ で、​**\[Core (コア)\] > \[Transform message\]**​ を選択します。 19. **\[Transform message\]**​ コンポーネントを HTTP の ​**\[Request\]**​ 操作の右にドラッグします。 20. **\[Output (出力)\]**​ プロパティウィンドウで、出力を次の DataWeave コードに変更します。 ```dataweave %dw 2.0 output application/json --- payload ``` 21. Mule アプリケーションを保存します。 22. **\[Run (実行)\] > \[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ をクリックします。 23. API をコールするには、インターネットブラウザーに ​`http://localhost:8081/`​ を入力します。 GitHub API がユーザー情報を返します。次に例を示します。 ```json { "login":"kahn", "id":16xxx343, "avatar_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"` ... } ``` ブラウザーで ​`HTTP GET on resource 'https://api.github.com:443/user' failed: unauthorized (401)`​ が返された場合、GitHub パスワードを指定する代わりに [個人アクセストークン](https://github.com/settings/tokens)​を使用します。新しいトークンを生成する場合、​**\[user\]**​ > ​**\[read:user\]**​ スコープのみが必要です。 ### [](#基本認証を設定する-xml-の例)基本認証を設定する XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#digest-authentication)ダイジェスト認証を設定する ダイジェスト認証メソッドを使用すると、Web サーバーはユーザーの Web ブラウザーを介してユーザーログイン情報を検証できます。 次の例は、​`GET`​ 要求を URL ​`http://www.example.com/test`​ に送信し、指定されたユーザー名とパスワードを含む認証ヘッダーを追加して、HTTP ​**Request**​ 操作のダイジェスト認証を設定する方法を示しています。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Method (メソッド)\]**​ を ​`GET`​ に、​**\[Path (パス)\]**​ を ​`test`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `example.com` - **Port (ポート)**​: `8081` 5. **\[Authentication (認証)\]**​ を ​**\[Digest authentication (ダイジェスト認証)\]**​ に設定します。 6. **\[Username (ユーザー名)\]**​ を ​`Username`​ に設定します。 7. **\[Password (パスワード)\]**​ を ​`Password`​ に設定します。 8. **\[OK\]**​ をクリックします。 ![HTTP 要求のダイジェスト認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-digest-authentication-1.png) ### [](#ダイジェスト認証を設定する-xml-の例)ダイジェスト認証を設定する XML の例 次のコードは、XML でダイジェスト認証を設定する方法を示しています。 ```xml ... ... ``` ## [](#ntlm-authentication)NTLM 認証を設定する NT LAN Manager (NTLM) 認証で、以前の Microsoft 製品である Microsoft LAN Manager (LANMAN) の認証プロトコルが置き換えられました。 次の例は、​`GET`​ 要求を URL ​`http://www.example.com/test`​ に送信し、指定されたユーザー名とパスワードを含む認証ヘッダーを追加して、HTTP ​**Request**​ 操作の NTLM 認証を設定する方法を示しています。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. **\[Method (メソッド)\]**​ を ​`GET`​ に、​**\[Path (パス)\]**​ を ​`test`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の操作のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[HTTP Request configuration (HTTP 要求設定)\]**​ ウィンドウで、次の項目を設定します。 - **Name (名前)**​: `HTTP_Request_configuration` - **Protocol (プロトコル)**​: `HTTPS` - **Host (ホスト)**​: `example.com` - **Port (ポート)**​: `8081` 5. **\[Authentication (認証)\]**​ を ​**\[Ntlm authentication (NTLM 認証)\]**​ に設定します。 6. **\[Username (ユーザー名)\]**​ を ​`Username`​ に設定します。 7. **\[Password (パスワード)\]**​ を ​`Password`​ に設定します。 8. **\[Domain (ドメイン)\]**​ と ​**\[Workstation (ワークステーション)\]**​ を設定します (省略可能)。 9. **\[OK\]**​ をクリックします。 ![HTTP 要求の NTLM 認証ウィンドウ設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-NTLM-authentication-1.png) ### [](#ntlm-認証を設定する-xml)NTLM 認証を設定する XML 次のコードは、XML で NTLM 認証を設定する方法を示しています。 ```xml ... ``` ## [](#oauth2-grant-authentication)OAuth2 認証コード許可種別認証を設定する OAuth2 認証コードでは、OAuth 2.0 認証コード許可種別を設定します。OAuth 認証サーバーには、OAuth で保護されるリソースが保持されています。たとえば、GitHub API への API コールを [OAuth を使用する GitHub サーバー](https://developer.github.com/v3/oauth/)​で認証できます。 HTTP Connector では OAuth 2.0 のみがサポートされています。 次の例は、GitHub OAuth 認証サーバー上の保護されたリソースである GitHub ユーザーデータにアクセスする Mule アプリケーションを作成して、HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別認証を設定する方法を示しています。この例では次の方法を説明します。 - 認証のセットアップ - Mule アプリケーションの作成 - Mule アプリケーションの実行 この例では、GitHub アカウントが必要です。 Mule アプリケーションを作成する前に、次の図で、OAuth アクセストークンを取得してデータのトークンを返す手順を確認してください。 ![OAuth アクセストークンの取得](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-authentication-diagram-2.png) 1. GitHub アクセスへの HTTP 要求をクライアントアプリケーションに送信します。 2. クライアントアプリケーションは要求を GitHub 認証サーバーにリダイレクトします。 3. GitHub はログイン情報を要求します。 4. ログインしてクライアントアプリケーションを認証します。 5. GitHub 認証サーバーはアクセストークンを返します。 6. クライアントアプリケーションは次の要求をリスンします。 ![データのトークンを返す](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-authentication-diagram-3.png) 1. アクセストークンを使用して保護されたユーザーデータを要求します。 2. ユーザーデータの要求をリダイレクトします。 3. クライアントアプリケーションは GitHub 認証サーバーからユーザーデータを取得します。 4. クライアントアプリケーションは次の要求をリスンします。 ### [](#認証のセットアップ)認証のセットアップ 認証をセットアップする手順は、次のとおりです。 ![認証のセットアップ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-authentication-diagram-1.png) 1. クライアントアプリケーションを認証サーバーに登録します。 認証サーバーが Mule アプリケーションにクライアント ID とクライアントシークレットを割り当てます。アプリケーションは、このログイン情報を使用して認証サーバーに身元を証明します。登録時には、Mule アプリケーションホームページへの URL とアプリケーションコールバック URL も指定します。 2. GitHub にログインします。 3. GitHub の \[Personal settings (個人設定)\] で、 [アプリケーションを登録](https://github.com/settings/applications/new)​します。 4. **\[Register a new OAuth application (新規 OAuth アプリケーションの登録)\]**​ ページで、次の項目に入力します。 - **Application name (アプリケーション名)**​: `oauth-grant-code` - **Homepage URL (ホームページ URL)**​: `http://localhost:8082` - **Authorization callback URL (認証コールバック URL)**​: `http://localhost:8082/callback` 5. **\[Register application (アプリケーションを登録)\]**​ をクリックします。 GitHub で、登録されたアプリケーションのページが ​`https://github.com/settings/applications/`​ に作成されます。このページには、GitHub で割り当てられたクライアント ID とクライアントシークレットが含まれます。 ### [](#mule-アプリケーションを作成する)Mule アプリケーションを作成する GitHub で割り当てられたクライアント ID とクライアントシークレットを使用して GitHub OAuth2 認証サーバー上にあるユーザーデータにアクセスする Mule アプリケーションを作成します。 Mule アプリケーションは、HTTP ​**Listener**​ ソース、HTTP ​**Request**​ 操作、およびプレーンテキストを JSON に変換する DataWeave ​**Transform message**​ コンポーネントで構成されます。HTTP ​**Request**​ 操作で、認証サーバーへのアクセスを設定します。Mule アプリケーションを作成する手順は、次のとおりです。 1. Studio の ​**\[Mule Palette (Mule パレット)\]**​ で、​**\[HTTP\] > \[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Path (パス)\]**​ を ​`/`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目を設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[HTTP\] > \[Request\]**​ 操作を ​**\[Listener\]**​ ソースの右にドラッグします。 7. **Package Explorer**​ ウィンドウを展開します。 8. Mule アプリケーションプロジェクトを展開します。 9. `pom.xml`​ ファイルを開きます。 10. ``​ セクションの最後で、​``​ ステートメントの前に次のステートメントを追加し、​**Request**​ 操作の OAuth オプションを有効化します。 ```xml org.mule.modules mule-oauth-module 1.1.8 mule-plugin ``` 11. フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 12. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 13. 次の必須項目を入力します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` OAuth 認証サーバーはこの URL を使用して認証コードを Mule サーバーに提供します。これで、Mule サーバーはアクセストークンを取得できます。これは、ローカルのアドレスではなく、外部に表示できるコールバックアドレスである必要があります。 - **Local authorization url (ローカル認証 URL)**​: `https://localhost:8082/login` この URL により、アカウントに対してアプリケーションへのアクセスを認証して許可できます。 - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` この URL により、Mule アプリケーションからのユーザー要求は GitHub 認証サーバーの認証 URL にリダイレクトされます。 - **Client id (クライアント ID)**​ アプリケーション登録時に GitHub から指定されたクライアント ID。 - **Client Secret (クライアントシークレット)**​ アプリケーション登録時に GitHub から指定されたクライアントシークレット。 - **Token Manager (トークンマネージャー)**​ クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャーを設定します。トークンマネージャーを設定しない場合、新しい要求のたびに OAuth Module が再初期化されます。 - **Token url (トークン URL)**​: `https://github.com/login/oauth/access_token` Mule クライアントアプリケーションはトークンをトークン URL に送信します。 さらに、次の省略可能な項目を設定できます。 - **Local callback url (ローカルコールバック URL)**​: `http://localhost:8082/callback` この URL は、GitHub にアプリケーションを登録したときに設定した ​**External callback url (外部コールバック URL)**​ の値と同じです。これは、リモートホストから ​**External callback url (外部コールバック URL)**​ に送信された要求を受信するために Mule が作成するサーバーの設定です。外部と内部のコールバック URL は同じです。一方の URL でランタイムでサーバーを作成し (内部)、もう一方の URL でインターネットでサーバーを参照できます (外部)。 - **Response Access Token (応答アクセストークン)**​: `#[payload.access_token]` この DataWeave 式は、アクセストークンを抽出します。 - **Response Refresh Token (応答更新トークン)**​: `[payload.access_token]` プロバイダーが更新トークンを送信する場合、更新トークンには ​`[payload.refresh_token]`​ のように DataWeave 式を使用します。ただし、この例では GitHub が実際に更新トークンを使用することはありません。 ![認証コード許可種別認証の設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-oauth-authentication-1.png) 14. **\[OK\]**​ をクリックします。 15. Mule アプリケーションを保存します。 ### [](#mule-クライアントアプリケーションを実行する)Mule クライアントアプリケーションを実行する Mule クライアントアプリケーションを実行し、GitHub ユーザーデータを取得するには、アクセストークンの有効期限が切れる前に次の手順を実行します。 1. **Package Explorer**​ ウィンドウで、プロジェクト名を右クリックし、​**\[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ を選択します。 コンソールに Mule アプリケーションがデプロイされていることが表示されます。 2. ブラウザーで、ローカル認証 URL ​`http://localhost:8082/login`​ を入力して、 [OAuth2 ダンス](https://tools.ietf.org/html/rfc6749#section-4.1)​を開始します。 GitHub がログインを促します。 3. GitHub のユーザー名とパスワードを使用してログインします。 GitHub が、登録されたアプリケーションの実行を認証するように促します。 ![Github の \[Authorize application (アプリケーションを認証)\] ページ](_images/http-authentication-githubpage.png) 4. **\[Authorize application (アプリケーションを認証)\]**​ をクリックします。 OAuth2 ダンスの開始に使用したブラウザーに、本文テキストとして ​`Successfully retrieved access token`​ が表示されます。 5. トークンでデータを取得するには、ブラウザーに次の URL を入力します。 `http://localhost:8081/github` GitHub API がユーザー情報を返します。 { "login":"kahn", "id":16xxx343,"avatar\_url":"https://avatars.githubusercontent.com/u/16xxx343?v=3"\` ... } ### [](#oauth2-認証コードを設定する-xml-の例)OAuth2 認証コードを設定する XML の例 次のコードは、XML で OAuth2 認証コードを設定する方法を示しています。 ```xml ``` ### [](#oauth2-認証スコープを設定する)OAuth2 認証スコープを設定する OAuth のスコープはセキュリティロールに似ています。​**\[Scopes (スコープ)\]**​ 項目で、認証サーバーで使用可能な OAuth スコープのカンマ区切りリストを定義して、OAuth2 認証コード許可種別のスコープを設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. グローバル要素を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 4. **\[Scopes (スコープ)\]**​ を ​`access_user_details, read_user_files`​ に設定します。 ![OAuth 認証の \[Scopes (スコープ)\] 項目の設定](_images/http-oauth-scopes.png) 5. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`scopes`​ 設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証のカスタムパラメーターを設定する)OAuth2 認証のカスタムパラメーターを設定する OAuth 実装で、OAuth 認証サーバー (OAS) の認証 URL をコールするときに、追加のクエリパラメーターの送信を要求または許可する場合があります。OAuth2 認証コード許可種別の次のパラメーターを ​**\[Custom parameters (カスタムパラメーター)\]**​ 項目で設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択します。 2. グローバル要素を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 4. 次の項目を設定します。 - **External callback url (外部コールバック URL)**​: `http://myapp.mycompany.com:8082/callback` - **Local authorization url (ローカル認証 URL)**​: `http://localhost:8082/login` - **Authorization url (認証 URL)**​: `https://github.com/login/oauth/authorize` - **Client id (クライアント ID)**​: GitHub アカウントのクライアント ID - **Client secret (クライアントシークレット)**​: GitHub アカウントのクライアントシークレット - **Token url (トークン URL)**​: `https://github.com/login/oauth/access_token` 5. **\[Custom parameters (カスタムパラメーター)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. プラス記号 (​**+**​) をクリックして、新しいカスタムパラメーターを追加します。 7. **\[Key (キー)\]**​ を ​`box_device_id`​ に、​**\[Value (値)\]**​ を ​`123142`​ に設定します。 8. ステップ 6 を繰り返します。 9. **\[Key (キー)\]**​ を ​`box_device_name`​ に、​**\[Value (値)\]**​ を ​`my-phone`​ に設定します。 ![OAuth 認証の \[Custom Parameters (カスタムパラメーター)\] 項目の設定](_images/http-oauth-customparameter.png) 10. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`oauth:custom-parameter`​ 設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証のリダイレクト-uri-を設定する)OAuth2 認証のリダイレクト URI を設定する [OAuth 2.0 仕様](https://tools.ietf.org/html/rfc6749)​には、リダイレクトの宛先サイトからリダイレクト URI をチェックする方法が説明されています。OAuth 認証サーバーはこの URL を使用して、アクセストークンを取得するための認証コードを Mule サーバーに提供します。この URL を指定する場合、Mule はその URL にエンドポイントを作成して認証コードを保存します。ただし、手動で認証コードを抽出するためのエンドポイントがすでに登録されていている場合は除きます。 リダイレクト URI (外部 ​`redirect_uri`​) を上書きするには、​**\[External callback url (外部コールバック URL)\]**​ 項目で外部リダイレクト URI を設定します。これは、CloudHub にアプリケーションをデプロイするなどのアクションに役立ちます。認証を設定するときに、必要に応じて ​**\[Local callback url (ローカルコールバック URL)\]**​ 項目も設定できます。 CloudHub の場合、Mule はエンドポイントを次のような形式で作成する必要があります。 `https://.cloudhub.io/` Mule に、正しい形式で CloudHub のエンドポイントを作成するように指示するには、OAuth2 認証コード許可種別設定に ​**\[External callback url (外部コールバック URL)\]**​ 項目を含めます。 ### [](#oauth2-認証のパラメーターの抽出を設定する)OAuth2 認証のパラメーターの抽出を設定する 認証サーバーから認証コードを取得したら、OAuth はサーバーのトークン URL からアクセストークンを要求します。 トークン URL への応答の形式は、OAuth 仕様では定義されていません。実装ごとに異なる応答形式が返されることがあります。デフォルトでは、Mule は応答が JSON 形式であることを期待します。この場合、次の項目が指定されていれば、HTTP 要求は必要な情報の抽出方法を判断できます。 - **Response access token (応答アクセストークン)**​ JSON 項目が ​`access_token`​。 - **Response refresh token (応答更新トークン)**​ JSON 項目が ​`refresh_token`​。 - **Response expires in (応答有効期限)**​ JSON 項目が ​`expires_in`​。 応答が JSON 形式の場合、パラメーターは自動的に抽出されるため、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して、トークン URL への応答内のこれらの値を参照できます。 応答が JSON 形式ではない場合、最初にコネクタを設定して、これらの値の抽出方法がわかるようにする必要があります。 次の例では、HTTP Connector は応答の ​`Content-Type`​ が ​`application/x-www-form-urlencoded`​ であることを期待するため、応答の本文はペイロードのマッピングに変換されます。​`#[payload.access_token]`​ (​**Response access token (応答アクセストークン)**​ と ​**Response refresh token (応答更新トークン)**​ のデフォルト値) など、DataWeave 式を使用してマッピングから値を抽出します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. 次の項目のデフォルトのオプションを確認します。 - **Response access token (応答アクセストークン)**​: `#[payload.access_token]` - **Response refresh token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response expires in (応答有効期限)**​: `#[payload.expires_in]` ![OAuth 認証の \[Response access token (応答アクセストークン)\] 項目、\[Response refresh token (応答更新トークン)\] 項目、\[Response expires in (応答有効期限)\] 項目の設定](_images/http-oauth-extractparameters.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`responseAccessToken`​、​`responseRefreshToken`​、および ​`responseExpiresIn`​ の設定は次のように記述されます。 ```xml ``` ### [](#oauth2-認証の更新トークン条件を設定する)OAuth2 認証の更新トークン条件を設定する トークン URL から取得するアクセストークンは、そのうち期限切れになります。トークンの有効期間の長さは、認証サーバーの実装に応じて異なります。アクセストークンの期限が切れたら、プロセス全体をもう一度実行するのではなく、トークン URL 応答で提供される更新アクセストークンを使用して、新しいアクセストークンを取得できます。 Mule では、この動作が自動的に管理されます。デフォルトでは、HTTP 要求が実行され、応答の状況コードが 401 の場合、Mule はトークン URL をコールして新しいアクセストークンを取得します。 Mule がいつこれらの要求のいずれかを実行し、​[DataWeave 式](https://docs.mulesoft.com/mule-runtime/latest/dataweave)​を使用して新しいアクセストークンを取得するかを設定できます。式は HTTP 要求コールの応答に対して評価されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. **\[Request Token When (要求トークン条件)\]**​ を ​**\[Expression (式)\]**​ に設定します。 4. 式ボックスに次の DataWeave 式を追加します。 ​`#[payload.response.status == 'unauthorized']` ![OAuth 認証の \[Response Token When (応答トークン条件)\] 項目の設定](_images/http-oauth-refreshtoken.png) **設定 XML**​ エディターでは、​`refreshTokenWhen`​ 設定は次のように記述されます。 ```xml ``` 要求の認証が失敗したら、応答には名前が ​`status`​ で値が ​`'unauthorized'`​ の XML ノードが含まれます。前の例では、DataWeave 式がその条件を評価します。条件が true と評価されると、Mule は要求をトークン URL に送信して新しいアクセストークンを取得します。 ### [](#oauth-認証の-https-を設定する)OAuth 認証の HTTPS を設定する 本番環境のように、認証サーバーとの通信に HTTPS を使用する必要がある場合、HTTPS エンコードをすべての要求 (以下に対する要求を含む) の OAuth ログイン情報に適用します。 - **Local authorization url (ローカル認証 URL)** - **Authorization url (認証 URL)** - **Redirect url (リダイレクト URL)** - **Token url (トークン URL)** OAuth 認証コード許可種別の HTTPS を設定する手順は、次のとおりです。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[TLS Configuration (TLS 設定)\]**​ を ​**\[Global Reference (グローバル参照)\]**​ に設定します。 ![Global reference に設定された \[TLS Configuration (TLS 設定)\] 項目](_images/http-oauth-tls-1.png) 3. 項目の横にある緑のプラス記号 (​**+**​) をクリックして新規 TLS コンテキストを作成します。 4. **\[Trust Store Configuration (トラストストア設定)\]**​ で、次の項目を設定します。 - **Path (パス)**​: `your_trust_store` - **Password (パスワード)**​: `your_password` 5. **\[Kye Store Configuration (キーストア設定)\]**​ で、次の項目を設定します。 - **Path (パス)**​: `your_keystore_path` - **Key Password (キーパスワード)**​: `your_key_password` - **Password (パスワード)**​: `your_password` ![TLS コンテキストのグローバル設定ウィンドウ](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-oauth-tls-2.png) 1. **\[OK\]**​ をクリックします。 **\[Configuration XML (設定 XML)\]**​ エディターで、​`tls:context`​、​`tls:trust-store`​、および ​`tls:key-store`​ の設定は次のように記述されます。 ```xml ``` ## [](#oauth2-client-authentication)OAuth2 クライアントログイン情報許可種別認証を設定する OAuth 認証サーバー (OAS) は、OAuth で保護されるリソースが保持されるサーバーです。たとえば、Box サーバーは OAuth 認証のある API を提供します。 HTTP Connector では OAuth 2.0 のみがサポートされています。 クライアントアプリケーション (CA) は、リソースオーナー (RO) に属する保護されたリソースへのアクセスを試みるサーバーです。たとえば、Box サーバーにある Box ユーザーに属するリソースへのアクセスを試みる Mule サーバーです。 この場合、RO は CA でもあります。つまり、RO によって CA が暗黙的に認証されるため、手順全体が大幅に簡素化されます。 次の図は、CA と OAS の関係を示しています。 ![CA と OAS の OAuth2 ダンス](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-authentication-diagram-4.png) 保護されたリソースにアクセスする手順は、次のとおりです。 1. CA はアプリケーションを OAS サーバーに登録する必要があります。これが行われると、OAS がログイン情報を CA に割り当て、CA はそれを後で使用して身元証明に使用できます (​`client ID`​ と ​`client secret`​)。OAS は ​`Token URL`​ も提供する必要があります。CA は、後でこのトークン URL に HTTP 要求を送信し、保護されたリソースへのアクセス時に必要な ​`access token`​ を取得できます。 2. CA は、OAS の ​`Token URL`​ に対して、身元を証明するためのクライアント ID が含まれる要求を実行します。応答として、OAS は CA に ​`access token`​ を付与します。 3. このアクセストークンがあると、CA は、要求にアクセストークンが含まれている限り、OAS にある保護されたリソースに自由にアクセスできるようになります。OAS が定義したポリシーに応じて、トークンがそのうち期限切れになることがあります。 クライアントログイン情報許可種別は、クライアントアプリケーションが、OAS のリソースオーナーの代理ではなく、それ自体の代理としてアプリケーションにアクセス権を付与するためのものです。アクセストークンを取得するために必要なのは、アプリケーションのログイン情報のみです。 HTTP ​**Request**​ 操作の OAuth2 認証コード許可種別を設定するには、​**\[Authentication (認証)\]**​ 項目を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 1. Studio で、OAuth クライアントログイン情報許可種別を使用する \[HTTP Request Configuration (HTTP 要求設定)\] グローバル要素を選択します。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. 次の項目を設定します。 - **Client id (クライアント ID)**​ アプリケーション登録時に GitHub から指定されたクライアント ID。 - **Client Secret (クライアントシークレット)**​ アプリケーション登録時に GitHub から指定されたクライアントシークレット。 - **Scopes (スコープ)**​ OAuth のスコープはセキュリティロールに似ています。 - **Token URL (トークン URL)**​ Mule クライアントアプリケーションはトークンをトークン URL に送信します。 ![クライアントログイン情報許可種別の設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-oauthcc-authentication-1.png) 1. **\[OK\]**​ をクリックします。 Mule アプリケーションは、デプロイ時にアクセストークンの取得を試みます。Mule アプリケーションがアクセストークンを取得できない場合、デプロイメントは失敗します。 ### [](#クライアントログイン情報許可種別認証を設定する-xml)クライアントログイン情報許可種別認証を設定する XML 次のコードは、XML でクライアントログイン情報許可種別認証を設定する方法を示しています。 ```xml ``` ### [](#oauth2-クライアントログイン情報のパラメーターの抽出を設定する)OAuth2 クライアントログイン情報のパラメーターの抽出を設定する OAuth2 認証コード許可種別に適用される、トークン URL からパラメーターを抽出する動作は、クライアントログイン情報許可種別にも適用されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. 次の項目のデフォルトのオプションを確認します。 - **Response access token (応答アクセストークン)**​: `#[payload.access_token]` - **Response refresh token (応答更新トークン)**​: `#[payload.refresh_token]` - **Response expires in (応答有効期限)**​: `#[payload.expires_in]` ![クライアントログイン情報許可種別の \[Response access token (応答アクセストークン)\] 項目、\[Response refresh token (応答更新トークン)\] 項目、\[Response expires in (応答有効期限)\] 項目の設定](_images/http-oauthcc-extractparameters.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`responseAccessToken`​、​`responseRefreshToken`​、および ​`responseExpiresIn`​ の設定は次のように記述されます。 ```xml ``` ### [](#oauth2-クライアントログイン情報の更新アクセストークン条件を設定する)OAuth2 クライアントログイン情報の更新アクセストークン条件を設定する OAuth2 認証コード許可種別に適用される、トークン URL からパラメーターを抽出する動作は、クライアントログイン情報許可種別にも適用されます。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Client credentials grant type (クライアントログイン情報許可種別)\]**​ に設定します。 3. **\[Request Token When (要求トークン条件)\]**​ を ​**\[Expression (式)\]**​ に設定します。 4. 式ボックスに次の DataWeave 式を追加します。 ​`#[payload.response.status == 'unauthorized']` ![OAuth2 クライアントログイン情報許可種別の \[Response Token When (応答トークン条件)\] 項目の設定](_images/http-oauthcc-refreshtoken.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`refreshTokenWhen`​ 設定は次のように記述されます。 ```xml ``` ## [](#トークンマネージャーを設定する)トークンマネージャーを設定する クライアントログイン情報と認証コードの認証情報にアクセスするには、トークンマネージャーを設定します。 1. Studio で、フローから HTTP の ​**\[Request\]**​ 操作を選択し、​**\[Connector Configuration (コネクタ設定)\]**​ のプロパティエディターで、プラス記号 (​**+**​) をクリックします。 2. **\[Authentication (認証)\]**​ を ​**\[Authorization code grant type (認証コード許可種別)\]**​ に設定します。 3. **\[Token manager (トークンマネージャー)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. プラス記号 (​**+**​) をクリックして、オブジェクトストアを参照する新しい設定を作成します。 ![トークンマネージャーの設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-oauth-tokenmanager-1.png) 1. **\[OK\]**​ をクリックします。 **設定 XML**​ エディターでは、​`tokenManager-ref`​ 属性は ​`token-manager-config`​ 要素を次のように参照しています。 ```xml ``` ### [](#トークンマネージャー-認証へのアクセス)トークンマネージャー - 認証へのアクセス トークンマネージャーを認証許可種別に関連付けたら、OAuth Module の操作を Mule アプリケーションフロー内の任意の場所で使用して、OAuth 認証からの情報にアクセスできます。 1 つのリソースオーナーでクライアントログイン情報または認証コードを使用する場合、フローでは次の OAuth Module 操作を使用します。次の操作では、トークンマネージャーから OAuth 認証情報にアクセスできます。 ```xml ``` 複数のリソースオーナーで認証コードを使用する場合、次の OAuth Module 操作を使用します。 ```xml ``` #### [](#トークンマネージャーの例)トークンマネージャーの例 次の表には、トークンマネージャーから情報を取得する方法の例が含まれます。フローで、OAuth 認証を管理する HTTP ​**Reuqest**​ 操作の後にこれらの OAuth Module 操作を配置します。
関数 結果

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" target="accessToken"/>

accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-access-token tokenManager="tokenManagerConfig" resourceOwnerId="Peter" target="accessToken"/>

ID ​Peter​ で識別されるリソースオーナーの ​accessToken​ 値には、DataWeave から ​vars.accessToken​ を使用してアクセスできます。

<oauth:retrieve-refresh-token tokenManager="tokenManagerConfig" target="refreshToken"/>

refreshToken​ 値には、DataWeave から ​vars.refreshToken​ を使用してアクセスできます。

<oauth:retrieve-expires-in tokenManager="tokenManagerConfig" target="expiresIn"/>

Expires in (期限) 値には、DataWeave から ​vars.expiresIn​ を使用してアクセスできます。

<oauth:retrieve-state tokenManager="tokenManagerConfig" target="state"/>

認証 URL に使用される State (状態) には、DataWeave から ​vars.state​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" key="a_custom_param_name" target="customParam"/>

トークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

<oauth:retrieve-custom-token-response-param tokenManager="tokenManagerConfig" resourceOwnerId="Peter" key="a_custom_param_name" target="customParam"/>

リソースオーナー ​Peter​ のトークン URL 応答から抽出されたカスタムパラメーターには、DataWeave から ​vars.customParam​ を使用してアクセスできます。

### [](#トークンマネージャーのアクセストークンの無効化を設定する)トークンマネージャーのアクセストークンの無効化を設定する トークンマネージャーの使用時に、特定のリソースオーナーをブロックできます。 1. Studio で、OAuth Module の ​**Invalidate oauth context**​ 操作をフローにドラッグします。 2. プロパティエディターで、OAuth 認証の管理時に HTTP ​**Request**​ 操作が参照するものと同じトークンマネージャーを参照するようにトークンマネージャーを設定します。 3. **\[Resource owner Id (リソースオーナー ID)\]**​ を、クリアするリソースオーナーを参照する式に設定します (例: `#[vars.resourceOwnerId]`​)。 ![トークンマネージャーの設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-oauth-tokenmanager-2.png) **設定 XML**​ エディターでは、​`invalidate-oauth-context`​ 設定は次のように記述されます。 ```xml ``` **Invalidate oauth context**​ 操作は、トークンマネージャー内に保存されているすべての OAuth 情報をすべて削除します。 1 つのトークンマネージャーで複数のリソースオーナーを使用する場合、あるリソースオーナーの OAuth 情報のみをクリアするには、\[Invalidate OAuth Context (OAuth コンテキストの無効化)\] 要素にリソースオーナー ID を指定します。 ```xml ``` ### [](#トークンマネージャーのオブジェクトストアの設定)トークンマネージャーのオブジェクトストアの設定 デフォルトでは、トークンマネージャーはメモリ内オブジェクトストアを使用してログイン情報を保存します。​**\[Object store (オブジェクトストア)\]**​ 項目を使用して、トークンマネージャーのオブジェクトストアを設定できます。 オブジェクトストアについての詳細は、​[カスタムオブジェクトストアの設定](https://docs.mulesoft.com/object-store-connector/latest/object-store-to-define-a-new-os)​に関するドキュメントを参照してください。 ## [](#複数ユーザーの代理でのリソースアクセス)複数ユーザーの代理でのリソースアクセス 複数ユーザーの代理でリソースにアクセスする必要がある場合、HTTP Connector を使用する代わりに SDK Connector を OAuth Module と組み合わせて使用します。 ## [](#関連情報)関連情報 - [HTTP Connector の概要](https://docs.mulesoft.com/jp/http-connector/1.9/) - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.9/http-connector-xml-reference) - [Object Store v2](https://docs.mulesoft.com/jp/object-store/) # REST サービスのコンシュームの例 次の例は、HTTP の ​**Listener**​ ソースと ​**Request**​ 操作をセットアップして、REST サービスをコンシュームするように HTTP 用 Anypoint Connector (HTTP Connector) を設定する方法を示しています。 この例を実行するには、次の操作が必要です。 - デフォルトの HTTP 設定を使用して REST API サービスをコンシュームします。 - HTTP 要求をテストします。 - セキュアな HTTPS 要求を実行するように、設定を編集します。 - HTTPS 要求をテストします。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![REST API サービスのコンシュームのフロー](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-consumerest-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージをリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-startapp-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-startapp-example-2.png) 7. \[HTTP\] の ​**\[Request\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[URL\]**​ を ​`http://jsonplaceholder.typicode.com/users`​ に設定します。 ![HTTP 要求の設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-consumerest-example-3.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 12. **\[Request\]**​ 設定画面に戻り、HTTPS プロトコルを使用するように ​**\[URL\]**​ 項目を ​`https://jsonplaceholder.typicode.com/users`​ に設定します。 13. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**要求**​のすべてのインスタンスで使用できるグローバル要素を設定します。 14. **\[Port (ポート)\]**​ を ​`443`​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求のグローバル設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-consumerest-example-4.png) 16. Mule アプリケーションを保存して実行します。 17. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 ## [](#rest-api-サービスをコンシュームするための-xml)REST API サービスをコンシュームするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # REST サービスのコンシュームの例 次の例では、HTTP\*Listener ソースと Request 操作をセットアップして、REST サービスをコンシュームするように HTTP 用 Anypoint Connector (HTTP Connector) を設定します。 この例を実行するには、次の操作が必要です。 - デフォルトの HTTP 設定を使用して REST API サービスをコンシュームします。 - HTTP 要求をテストします。 - セキュアな HTTPS 要求を実行するように、設定を編集します。 - HTTPS 要求をテストします。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![REST API サービスのコンシュームのフロー](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-consumerest-flow.png) Figure 1. REST API サービスのコンシュームのフロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージをリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​ `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​ `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-startapp-example-1.png) Figure 2. HTTP リスナーのグローバル設定 ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-startapp-example-2.png) Figure 3. HTTP リスナーの設定 7. \[HTTP\] の ​**\[Request\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[URL\]**​ 項目を ​`http://jsonplaceholder.typicode.com/users`​ に設定します。 ![HTTP 要求の設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-consumerest-example-3.png) Figure 4. HTTP 要求の設定 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 12. **\[Request\]**​ 設定画面に戻り、HTTPS プロトコルを使用するように ​**\[URL\]**​ 項目を ​`https://jsonplaceholder.typicode.com/users`​ に設定します。 13. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**要求**​のすべてのインスタンスで使用できるグローバル要素を設定します。 14. **\[Port (ポート)\]**​ 項目を ​`443`​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求のグローバル設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-consumerest-example-4.png) Figure 5. HTTP 要求のグローバル設定 16. Mule アプリケーションを保存して実行します。 17. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 ## [](#rest-api-サービスをコンシュームするための-xml)REST API サービスをコンシュームするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # REST サービスのコンシュームの例 次の例は、HTTP の ​**Listener**​ ソースと ​**Request**​ 操作をセットアップして、REST サービスをコンシュームするように HTTP 用 Anypoint Connector (HTTP Connector) を設定する方法を示しています。 この例を実行するには、次の操作が必要です。 - デフォルトの HTTP 設定を使用して REST API サービスをコンシュームします。 - HTTP 要求をテストします。 - セキュアな HTTPS 要求を実行するように、設定を編集します。 - HTTPS 要求をテストします。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![REST API サービスのコンシュームのフロー](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-consumerest-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージをリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-startapp-example-1.png) ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-startapp-example-2.png) 7. \[HTTP\] の ​**\[Request\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[URL\]**​ を ​`http://jsonplaceholder.typicode.com/users`​ に設定します。 ![HTTP 要求の設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-consumerest-example-3.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 12. **\[Request\]**​ 設定画面に戻り、HTTPS プロトコルを使用するように ​**\[URL\]**​ 項目を ​`https://jsonplaceholder.typicode.com/users`​ に設定します。 13. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**要求**​のすべてのインスタンスで使用できるグローバル要素を設定します。 14. **\[Port (ポート)\]**​ を ​`443`​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求のグローバル設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-consumerest-example-4.png) 16. Mule アプリケーションを保存して実行します。 17. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 ## [](#rest-api-サービスをコンシュームするための-xml)REST API サービスをコンシュームするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # REST サービスのコンシュームの例 次の例は、HTTP の ​**Listener**​ ソースと ​**Request**​ 操作をセットアップして、REST サービスをコンシュームするように HTTP 用 Anypoint Connector (HTTP Connector) を設定する方法を示しています。 この例を実行するには、次の操作が必要です。 - デフォルトの HTTP 設定を使用して REST API サービスをコンシュームします。 - HTTP 要求をテストします。 - セキュアな HTTPS 要求を実行するように、設定を編集します。 - HTTPS 要求をテストします。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![REST API サービスのコンシュームのフロー](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-consumerest-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージをリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-startapp-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-startapp-example-2.png) 7. \[HTTP\] の ​**\[Request\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[URL\]**​ を ​`http://jsonplaceholder.typicode.com/users`​ に設定します。 ![HTTP 要求の設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-consumerest-example-3.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 12. **\[Request\]**​ 設定画面に戻り、HTTPS プロトコルを使用するように ​**\[URL\]**​ 項目を ​`https://jsonplaceholder.typicode.com/users`​ に設定します。 13. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**要求**​のすべてのインスタンスで使用できるグローバル要素を設定します。 14. **\[Port (ポート)\]**​ を ​`443`​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求のグローバル設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-consumerest-example-4.png) 16. Mule アプリケーションを保存して実行します。 17. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 ## [](#rest-api-サービスをコンシュームするための-xml)REST API サービスをコンシュームするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # REST サービスのコンシュームの例 次の例は、HTTP の ​**Listener**​ ソースと ​**Request**​ 操作をセットアップして、REST サービスをコンシュームするように HTTP 用 Anypoint Connector (HTTP Connector) を設定する方法を示しています。 この例を実行するには、次の操作が必要です。 - デフォルトの HTTP 設定を使用して REST API サービスをコンシュームします。 - HTTP 要求をテストします。 - セキュアな HTTPS 要求を実行するように、設定を編集します。 - HTTPS 要求をテストします。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![REST API サービスのコンシュームのフロー](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-consumerest-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージをリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-startapp-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-startapp-example-2.png) 7. \[HTTP\] の ​**\[Request\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[URL\]**​ を ​`http://jsonplaceholder.typicode.com/users`​ に設定します。 ![HTTP 要求の設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-consumerest-example-3.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 12. **\[Request\]**​ 設定画面に戻り、HTTPS プロトコルを使用するように ​**\[URL\]**​ 項目を ​`https://jsonplaceholder.typicode.com/users`​ に設定します。 13. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**要求**​のすべてのインスタンスで使用できるグローバル要素を設定します。 14. **\[Port (ポート)\]**​ を ​`443`​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求のグローバル設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-consumerest-example-4.png) 16. Mule アプリケーションを保存して実行します。 17. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 ## [](#rest-api-サービスをコンシュームするための-xml)REST API サービスをコンシュームするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # REST サービスのコンシュームの例 次の例は、HTTP の ​**Listener**​ ソースと ​**Request**​ 操作をセットアップして、REST サービスをコンシュームするように HTTP 用 Anypoint Connector (HTTP Connector) を設定する方法を示しています。 この例を実行するには、次の操作が必要です。 - デフォルトの HTTP 設定を使用して REST API サービスをコンシュームします。 - HTTP 要求をテストします。 - セキュアな HTTPS 要求を実行するように、設定を編集します。 - HTTPS 要求をテストします。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![REST API サービスのコンシュームのフロー](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-consumerest-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージをリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. **\[Path (パス)\]**​ を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-startapp-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-startapp-example-2.png) 7. \[HTTP\] の ​**\[Request\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[URL\]**​ を ​`https://jsonplaceholder.typicode.com/users`​ に設定します。 ![HTTP 要求の設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-consumerest-example-3.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 12. **\[Request\]**​ 設定画面に戻り、HTTPS プロトコルを使用するように ​**\[URL\]**​ 項目を ​`https://jsonplaceholder.typicode.com/users`​ に設定します。 13. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**要求**​のすべてのインスタンスで使用できるグローバル要素を設定します。 14. **\[Port (ポート)\]**​ を ​`443`​ に設定します。 15. **\[OK\]**​ をクリックします。 ![HTTP 要求のグローバル設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-consumerest-example-4.png) 16. Mule アプリケーションを保存して実行します。 17. Web ブラウザーを開き、​`localhost:8081/trigger`​ に移動します。 **Listener**​ がポート ​`8081`​ で要求を検出し、アプリケーションを開始します。ユーザーのリストがブラウザーに表示されます。 ## [](#rest-api-サービスをコンシュームするための-xml)REST API サービスをコンシュームするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # フォームの投稿の例 次の例は、form (フォーム) パラメーターが含まれる HTTP 要求を送信してフォームを投稿するように HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースを設定する方法を示しています。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドを使用してフォームを投稿する必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![フォームの投稿フロー](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-example-post-form-flow.png) Figure 1. フォームの投稿フロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Path (パス)\]**​ 項目を ​`submitform`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 6. **Choice**​ ルーターコンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 **Choice**​ ルーターにより、条件処理がフローに追加されます。 7. **\[Set Payload\]**​ コンポーネントを ​**\[Choice\]**​ ルーターの ​**\[When (条件)\]**​ 条件ボックスにドラッグします。 8. **\[Value (値)\]**​ 項目を ​`Sorry #[payload.'firstname'], you’re too young to register.`​ に設定します。 この式は、要求に含まれている form (フォーム) パラメーターの 1 つ ​`firstname`​ を参照しています。コネクタで受信したパラメーターは、Mule メッセージペイロード内にマップ内の項目として存在します。 9. **Choice**​ ルーターで ​**\[When (条件)\]**​ 条件を選択します。 10. **\[Expression (式)\]**​ 項目を ​`#[server.dateTime.year-18 < payload.'yearborn']`​ に設定します。 この式は受信 form (フォーム) パラメーターの 1 つ ​`yearborn`​ を参照しています。 11. 別の ​**\[Set Payload\]**​ コンポーネントを ​**Choice**​ ルーターの ​**\[Default (デフォルト)\]**​ 条件ボックスにドラッグします。 12. **\[Value (値)\]**​ 項目を ​`Registration has been carried out successfully! Welcome #[payload.'firstname'] #[payload.'lastname']!`​ に設定します。 13. Mule アプリケーションを保存します。 14. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 15. フォームを投稿するには、curl コマンド ​`http://localhost:8081/submitform`​ を実行します。 投稿本文には、form (フォーム) パラメーター ​`firstname`​、​`lastname`​、​`yearborn`​ が含まれています。 ```text 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 ``` HTTP リスナーは要求を受信すると、次のキー-値ペアのマップ種別のペイロードが含まれる Mule メッセージを作成します。 `firstname: Aaron` `lastname: Aguilar Acevedo` `yearborn: 1999` `lastname`​ パラメーターの HTTP 要求の値はエンコードされていますが (​`Aguilar+Acevedo)`​、Mule メッセージに配置するときにコネクタが値を自動的にデコードします。 フローの残りのどのブロックでも、MEL 式を使用して対応するキーを参照することで、マップペイロードの要素の値に簡単にアクセスできます。 前の例では、​`yearborn`​ キーと一致する値が、式 ​`#[payload.'yearborn']`​ を介して取得されます。この式の値に応じて、2 つの異なるパスのいずれかが使用されます。 - 最初のパスでは、類似の MEL 式を使用して ​`firstname`​ キーと一致する値を参照し、ペイロードに登録を拒否するメッセージを設定します。 - 2 つ目のパスでは登録を受諾し、​`firstname`​ と ​`lastname`​ の値を参照して、名前でユーザーを歓迎します。 ## [](#フォームの投稿アプリケーションの-xml)フォームの投稿アプリケーションの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # フォームの投稿の例 次の例は、form (フォーム) パラメーターが含まれる HTTP 要求を送信してフォームを投稿するように HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースを設定する方法を示しています。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドを使用してフォームを投稿する必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![フォームの投稿フロー](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-example-post-form-flow.png) Figure 1. フォームの投稿フロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Path (パス)\]**​ 項目を ​`submitform`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 6. **Choice**​ ルーターコンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 **Choice**​ ルーターにより、条件処理がフローに追加されます。 7. **\[Set Payload\]**​ コンポーネントを ​**\[Choice\]**​ ルーターの ​**\[When (条件)\]**​ 条件ボックスにドラッグします。 8. **\[Value (値)\]**​ 項目を ​`Sorry #[payload.'firstname'], you’re too young to register.`​ に設定します。 この式は、要求に含まれている form (フォーム) パラメーターの 1 つ ​`firstname`​ を参照しています。コネクタで受信したパラメーターは、Mule メッセージペイロード内にマップ内の項目として存在します。 9. **Choice**​ ルーターで ​**\[When (条件)\]**​ 条件を選択します。 10. **\[Expression (式)\]**​ 項目を ​`#[server.dateTime.year-18 < payload.'yearborn']`​ に設定します。 この式は受信 form (フォーム) パラメーターの 1 つ ​`yearborn`​ を参照しています。 11. 別の ​**\[Set Payload\]**​ コンポーネントを ​**Choice**​ ルーターの ​**\[Default (デフォルト)\]**​ 条件ボックスにドラッグします。 12. **\[Value (値)\]**​ 項目を ​`Registration has been carried out successfully! Welcome #[payload.'firstname'] #[payload.'lastname']!`​ に設定します。 13. Mule アプリケーションを保存します。 14. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 15. フォームを投稿するには、curl コマンド ​`http://localhost:8081/submitform`​ を実行します。 投稿本文には、form (フォーム) パラメーター ​`firstname`​、​`lastname`​、​`yearborn`​ が含まれています。 ```text 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 ``` HTTP リスナーは要求を受信すると、次のキー-値ペアのマップ種別のペイロードが含まれる Mule メッセージを作成します。 `firstname: Aaron` `lastname: Aguilar Acevedo` `yearborn: 1999` `lastname`​ パラメーターの HTTP 要求の値はエンコードされていますが (​`Aguilar+Acevedo)`​、Mule メッセージに配置するときにコネクタが値を自動的にデコードします。 フローの残りのどのブロックでも、MEL 式を使用して対応するキーを参照することで、マップペイロードの要素の値に簡単にアクセスできます。 前の例では、​`yearborn`​ キーと一致する値が、式 ​`#[payload.'yearborn']`​ を介して取得されます。この式の値に応じて、2 つの異なるパスのいずれかが使用されます。 - 最初のパスでは、類似の MEL 式を使用して ​`firstname`​ キーと一致する値を参照し、ペイロードに登録を拒否するメッセージを設定します。 - 2 つ目のパスでは登録を受諾し、​`firstname`​ と ​`lastname`​ の値を参照して、名前でユーザーを歓迎します。 ## [](#フォームの投稿アプリケーションの-xml)フォームの投稿アプリケーションの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # フォームの投稿の例 次の例は、form (フォーム) パラメーターが含まれる HTTP 要求を送信してフォームを投稿するように HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースを設定する方法を示しています。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドを使用してフォームを投稿する必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![フォームの投稿フロー](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-example-post-form-flow.png) Figure 1. フォームの投稿フロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Path (パス)\]**​ 項目を ​`submitform`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 6. **Choice**​ ルーターコンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 **Choice**​ ルーターにより、条件処理がフローに追加されます。 7. **\[Set Payload\]**​ コンポーネントを ​**\[Choice\]**​ ルーターの ​**\[When (条件)\]**​ 条件ボックスにドラッグします。 8. **\[Value (値)\]**​ 項目を ​`Sorry #[payload.'firstname'], you’re too young to register.`​ に設定します。 この式は、要求に含まれている form (フォーム) パラメーターの 1 つ ​`firstname`​ を参照しています。コネクタで受信したパラメーターは、Mule メッセージペイロード内にマップ内の項目として存在します。 9. **Choice**​ ルーターで ​**\[When (条件)\]**​ 条件を選択します。 10. **\[Expression (式)\]**​ 項目を ​`#[server.dateTime.year-18 < payload.'yearborn']`​ に設定します。 この式は受信 form (フォーム) パラメーターの 1 つ ​`yearborn`​ を参照しています。 11. 別の ​**\[Set Payload\]**​ コンポーネントを ​**Choice**​ ルーターの ​**\[Default (デフォルト)\]**​ 条件ボックスにドラッグします。 12. **\[Value (値)\]**​ 項目を ​`Registration has been carried out successfully! Welcome #[payload.'firstname'] #[payload.'lastname']!`​ に設定します。 13. Mule アプリケーションを保存します。 14. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 15. フォームを投稿するには、curl コマンド ​`http://localhost:8081/submitform`​ を実行します。 投稿本文には、form (フォーム) パラメーター ​`firstname`​、​`lastname`​、​`yearborn`​ が含まれています。 ```text 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 ``` HTTP リスナーは要求を受信すると、次のキー-値ペアのマップ種別のペイロードが含まれる Mule メッセージを作成します。 `firstname: Aaron` `lastname: Aguilar Acevedo` `yearborn: 1999` `lastname`​ パラメーターの HTTP 要求の値はエンコードされていますが (​`Aguilar+Acevedo)`​、Mule メッセージに配置するときにコネクタが値を自動的にデコードします。 フローの残りのどのブロックでも、MEL 式を使用して対応するキーを参照することで、マップペイロードの要素の値に簡単にアクセスできます。 前の例では、​`yearborn`​ キーと一致する値が、式 ​`#[payload.'yearborn']`​ を介して取得されます。この式の値に応じて、2 つの異なるパスのいずれかが使用されます。 - 最初のパスでは、類似の MEL 式を使用して ​`firstname`​ キーと一致する値を参照し、ペイロードに登録を拒否するメッセージを設定します。 - 2 つ目のパスでは登録を受諾し、​`firstname`​ と ​`lastname`​ の値を参照して、名前でユーザーを歓迎します。 ## [](#フォームの投稿アプリケーションの-xml)フォームの投稿アプリケーションの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # フォームの投稿の例 次の例は、form (フォーム) パラメーターが含まれる HTTP 要求を送信してフォームを投稿するように HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースを設定する方法を示しています。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドを使用してフォームを投稿する必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![フォームの投稿フロー](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-example-post-form-flow.png) Figure 1. フォームの投稿フロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Path (パス)\]**​ 項目を ​`submitform`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 6. **Choice**​ ルーターコンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 **Choice**​ ルーターにより、条件処理がフローに追加されます。 7. **\[Set Payload\]**​ コンポーネントを ​**\[Choice\]**​ ルーターの ​**\[When (条件)\]**​ 条件ボックスにドラッグします。 8. **\[Value (値)\]**​ 項目を ​`Sorry #[payload.'firstname'], you’re too young to register.`​ に設定します。 この式は、要求に含まれている form (フォーム) パラメーターの 1 つ ​`firstname`​ を参照しています。コネクタで受信したパラメーターは、Mule メッセージペイロード内にマップ内の項目として存在します。 9. **Choice**​ ルーターで ​**\[When (条件)\]**​ 条件を選択します。 10. **\[Expression (式)\]**​ 項目を ​`#[server.dateTime.year-18 < payload.'yearborn']`​ に設定します。 この式は受信 form (フォーム) パラメーターの 1 つ ​`yearborn`​ を参照しています。 11. 別の ​**\[Set Payload\]**​ コンポーネントを ​**Choice**​ ルーターの ​**\[Default (デフォルト)\]**​ 条件ボックスにドラッグします。 12. **\[Value (値)\]**​ 項目を ​`Registration has been carried out successfully! Welcome #[payload.'firstname'] #[payload.'lastname']!`​ に設定します。 13. Mule アプリケーションを保存します。 14. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 15. フォームを投稿するには、curl コマンド ​`http://localhost:8081/submitform`​ を実行します。 投稿本文には、form (フォーム) パラメーター ​`firstname`​、​`lastname`​、​`yearborn`​ が含まれています。 ```text 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 ``` HTTP リスナーは要求を受信すると、次のキー-値ペアのマップ種別のペイロードが含まれる Mule メッセージを作成します。 `firstname: Aaron` `lastname: Aguilar Acevedo` `yearborn: 1999` `lastname`​ パラメーターの HTTP 要求の値はエンコードされていますが (​`Aguilar+Acevedo)`​、Mule メッセージに配置するときにコネクタが値を自動的にデコードします。 フローの残りのどのブロックでも、MEL 式を使用して対応するキーを参照することで、マップペイロードの要素の値に簡単にアクセスできます。 前の例では、​`yearborn`​ キーと一致する値が、式 ​`#[payload.'yearborn']`​ を介して取得されます。この式の値に応じて、2 つの異なるパスのいずれかが使用されます。 - 最初のパスでは、類似の MEL 式を使用して ​`firstname`​ キーと一致する値を参照し、ペイロードに登録を拒否するメッセージを設定します。 - 2 つ目のパスでは登録を受諾し、​`firstname`​ と ​`lastname`​ の値を参照して、名前でユーザーを歓迎します。 ## [](#フォームの投稿アプリケーションの-xml)フォームの投稿アプリケーションの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # フォームの投稿の例 次の例は、form (フォーム) パラメーターが含まれる HTTP 要求を送信してフォームを投稿するように HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースを設定する方法を示しています。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドを使用してフォームを投稿する必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![フォームの投稿フロー](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-example-post-form-flow.png) Figure 1. フォームの投稿フロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Path (パス)\]**​ 項目を ​`submitform`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 6. **Choice**​ ルーターコンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 **Choice**​ ルーターにより、条件処理がフローに追加されます。 7. **\[Set Payload\]**​ コンポーネントを ​**\[Choice\]**​ ルーターの ​**\[When (条件)\]**​ 条件ボックスにドラッグします。 8. **\[Value (値)\]**​ 項目を ​`Sorry #[payload.'firstname'], you’re too young to register.`​ に設定します。 この式は、要求に含まれている form (フォーム) パラメーターの 1 つ ​`firstname`​ を参照しています。コネクタで受信したパラメーターは、Mule メッセージペイロード内にマップ内の項目として存在します。 9. **Choice**​ ルーターで ​**\[When (条件)\]**​ 条件を選択します。 10. **\[Expression (式)\]**​ 項目を ​`#[server.dateTime.year-18 < payload.'yearborn']`​ に設定します。 この式は受信 form (フォーム) パラメーターの 1 つ ​`yearborn`​ を参照しています。 11. 別の ​**\[Set Payload\]**​ コンポーネントを ​**Choice**​ ルーターの ​**\[Default (デフォルト)\]**​ 条件ボックスにドラッグします。 12. **\[Value (値)\]**​ 項目を ​`Registration has been carried out successfully! Welcome #[payload.'firstname'] #[payload.'lastname']!`​ に設定します。 13. Mule アプリケーションを保存します。 14. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 15. フォームを投稿するには、curl コマンド ​`http://localhost:8081/submitform`​ を実行します。 投稿本文には、form (フォーム) パラメーター ​`firstname`​、​`lastname`​、​`yearborn`​ が含まれています。 ```text 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 ``` HTTP リスナーは要求を受信すると、次のキー-値ペアのマップ種別のペイロードが含まれる Mule メッセージを作成します。 `firstname: Aaron` `lastname: Aguilar Acevedo` `yearborn: 1999` `lastname`​ パラメーターの HTTP 要求の値はエンコードされていますが (​`Aguilar+Acevedo)`​、Mule メッセージに配置するときにコネクタが値を自動的にデコードします。 フローの残りのどのブロックでも、MEL 式を使用して対応するキーを参照することで、マップペイロードの要素の値に簡単にアクセスできます。 前の例では、​`yearborn`​ キーと一致する値が、式 ​`#[payload.'yearborn']`​ を介して取得されます。この式の値に応じて、2 つの異なるパスのいずれかが使用されます。 - 最初のパスでは、類似の MEL 式を使用して ​`firstname`​ キーと一致する値を参照し、ペイロードに登録を拒否するメッセージを設定します。 - 2 つ目のパスでは登録を受諾し、​`firstname`​ と ​`lastname`​ の値を参照して、名前でユーザーを歓迎します。 ## [](#フォームの投稿アプリケーションの-xml)フォームの投稿アプリケーションの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # フォームの投稿の例 次の例は、form (フォーム) パラメーターが含まれる HTTP 要求を送信してフォームを投稿するように HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースを設定する方法を示しています。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドを使用してフォームを投稿する必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![フォームの投稿フロー](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-example-post-form-flow.png) Figure 1. フォームの投稿フロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Path (パス)\]**​ 項目を ​`submitform`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 6. **Choice**​ ルーターコンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 **Choice**​ ルーターにより、条件処理がフローに追加されます。 7. **\[Set Payload\]**​ コンポーネントを ​**\[Choice\]**​ ルーターの ​**\[When (条件)\]**​ 条件ボックスにドラッグします。 8. **\[Value (値)\]**​ 項目を ​`Sorry #[payload.'firstname'], you’re too young to register.`​ に設定します。 この式は、要求に含まれている form (フォーム) パラメーターの 1 つ ​`firstname`​ を参照しています。コネクタで受信したパラメーターは、Mule メッセージペイロード内にマップ内の項目として存在します。 9. **Choice**​ ルーターで ​**\[When (条件)\]**​ 条件を選択します。 10. **\[Expression (式)\]**​ 項目を ​`#[server.dateTime.year-18 < payload.'yearborn']`​ に設定します。 この式は受信 form (フォーム) パラメーターの 1 つ ​`yearborn`​ を参照しています。 11. 別の ​**\[Set Payload\]**​ コンポーネントを ​**Choice**​ ルーターの ​**\[Default (デフォルト)\]**​ 条件ボックスにドラッグします。 12. **\[Value (値)\]**​ 項目を ​`Registration has been carried out successfully! Welcome #[payload.'firstname'] #[payload.'lastname']!`​ に設定します。 13. Mule アプリケーションを保存します。 14. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 15. フォームを投稿するには、curl コマンド ​`http://localhost:8081/submitform`​ を実行します。 投稿本文には、form (フォーム) パラメーター ​`firstname`​、​`lastname`​、​`yearborn`​ が含まれています。 ```text 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 ``` HTTP リスナーは要求を受信すると、次のキー-値ペアのマップ種別のペイロードが含まれる Mule メッセージを作成します。 `firstname: Aaron` `lastname: Aguilar Acevedo` `yearborn: 1999` `lastname`​ パラメーターの HTTP 要求の値はエンコードされていますが (​`Aguilar+Acevedo)`​、Mule メッセージに配置するときにコネクタが値を自動的にデコードします。 フローの残りのどのブロックでも、MEL 式を使用して対応するキーを参照することで、マップペイロードの要素の値に簡単にアクセスできます。 前の例では、​`yearborn`​ キーと一致する値が、式 ​`#[payload.'yearborn']`​ を介して取得されます。この式の値に応じて、2 つの異なるパスのいずれかが使用されます。 - 最初のパスでは、類似の MEL 式を使用して ​`firstname`​ キーと一致する値を参照し、ペイロードに登録を拒否するメッセージを設定します。 - 2 つ目のパスでは登録を受諾し、​`firstname`​ と ​`lastname`​ の値を参照して、名前でユーザーを歓迎します。 ## [](#フォームの投稿アプリケーションの-xml)フォームの投稿アプリケーションの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ブラウザーからのアプリケーションの開始の例 次の例は、フローを開始するように HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースを設定する方法を示しています。この例では、HTTP ​**Listener**​ ソースによって特定のポートでサーバー上の全ネットワークインターフェースがリスンされます。次に、​**Logger**​ コンポーネントによってメッセージ ​`Hello`​ が記録されます。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![ブラウザーからのアプリケーションの開始のフロー](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-startapp-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​ `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​ `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-startapp-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-startapp-example-2.png) 7. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[Logger\]**​ 設定画面で、​**\[Message (メッセージ)\]**​ 項目を ​`Hello`​ に設定します。 ![Logger の設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-startapp-example-3.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 メッセージ ​`Mule is up and kicking`​ を検索し、コンソールメッセージにアプリケーションが適切に起動したことが示されていることを確認します。 11. ブラウザーを開き、​`http://0.0.0.0:8081/trigger`​ と入力します。 HTTP ​**Listener**​ ソースがポート ​`8081`​ で要求をリスンすると、アプリケーションが起動されます。 12. Studio コンソールで、ログをスクロールすると次のような ​`Hello`​ メッセージが表示されます。 ```console INFO 2020-01-02 13:00:00,438 [[MuleRuntime].cpuLight.15: [http].httpFlow.CPU_LITE @169a1097] [event: id] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Hello ``` ## [](#ブラウザーからアプリケーションを開始するための-xml)ブラウザーからアプリケーションを開始するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ブラウザーからのアプリケーションの開始の例 次の例は、フローを開始するように HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースを設定する方法を示しています。この例では、HTTP リスナーによって特定のポートでサーバー上の全ネットワークインターフェースがリスンされます。次に、Logger コンポーネントによってメッセージ ​`Hello`​ が記録されます。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![ブラウザーからのアプリケーションの開始のフロー](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-startapp-flow.png) Figure 1. ブラウザーからのアプリケーションの開始のフロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​ `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​ `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-startapp-example-1.png) Figure 2. HTTP リスナーのグローバル設定 ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-startapp-example-2.png) Figure 3. HTTP リスナーの設定 7. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[Logger\]**​ 設定画面で、​**\[Message (メッセージ)\]**​ 項目を ​`Hello`​ に設定します。 ![Logger の設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-startapp-example-3.png) Figure 4. Logger の設定 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 メッセージ ​`Mule is up and kicking`​ を検索し、コンソールメッセージにアプリケーションが適切に起動したことが示されていることを確認します。 11. ブラウザーを開き、​`http://0.0.0.0:8081/trigger`​ と入力します。 HTTP ​**Listener**​ ソースがポート ​`8081`​ で要求をリスンすると、アプリケーションが起動されます。 12. Studio コンソールで、ログをスクロールすると次のような ​`Hello`​ メッセージが表示されます。 ```console INFO 2020-01-02 13:00:00,438 [[MuleRuntime].cpuLight.15: [http].httpFlow.CPU_LITE @169a1097] [event: id] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Hello ``` ## [](#ブラウザーからアプリケーションを開始するための-xml)ブラウザーからアプリケーションを開始するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ブラウザーからのアプリケーションの開始の例 次の例は、フローを開始するように HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースを設定する方法を示しています。この例では、HTTP ​**Listener**​ ソースによって特定のポートでサーバー上の全ネットワークインターフェースがリスンされます。次に、​**Logger**​ コンポーネントによってメッセージ ​`Hello`​ が記録されます。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![ブラウザーからのアプリケーションの開始のフロー](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-startapp-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​ `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​ `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-startapp-example-1.png) ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-startapp-example-2.png) 7. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[Logger\]**​ 設定画面で、​**\[Message (メッセージ)\]**​ 項目を ​`Hello`​ に設定します。 ![Logger の設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-startapp-example-3.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 メッセージ ​`Mule is up and kicking`​ を検索し、コンソールメッセージにアプリケーションが適切に起動したことが示されていることを確認します。 11. ブラウザーを開き、​`http://0.0.0.0:8081/trigger`​ と入力します。 HTTP ​**Listener**​ ソースがポート ​`8081`​ で要求をリスンすると、アプリケーションが起動されます。 12. Studio コンソールで、ログをスクロールすると次のような ​`Hello`​ メッセージが表示されます。 ```console INFO 2020-01-02 13:00:00,438 [[MuleRuntime].cpuLight.15: [http].httpFlow.CPU_LITE @169a1097] [event: id] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Hello ``` ## [](#ブラウザーからアプリケーションを開始するための-xml)ブラウザーからアプリケーションを開始するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ブラウザーからのアプリケーションの開始の例 次の例は、フローを開始するように HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースを設定する方法を示しています。この例では、HTTP ​**Listener**​ ソースによって特定のポートでサーバー上の全ネットワークインターフェースがリスンされます。次に、​**Logger**​ コンポーネントによってメッセージ ​`Hello`​ が記録されます。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![ブラウザーからのアプリケーションの開始のフロー](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-startapp-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​ `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​ `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-startapp-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-startapp-example-2.png) 7. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[Logger\]**​ 設定画面で、​**\[Message (メッセージ)\]**​ 項目を ​`Hello`​ に設定します。 ![Logger の設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-startapp-example-3.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 メッセージ ​`Mule is up and kicking`​ を検索し、コンソールメッセージにアプリケーションが適切に起動したことが示されていることを確認します。 11. ブラウザーを開き、​`http://0.0.0.0:8081/trigger`​ と入力します。 HTTP ​**Listener**​ ソースがポート ​`8081`​ で要求をリスンすると、アプリケーションが起動されます。 12. Studio コンソールで、ログをスクロールすると次のような ​`Hello`​ メッセージが表示されます。 ```console INFO 2020-01-02 13:00:00,438 [[MuleRuntime].cpuLight.15: [http].httpFlow.CPU_LITE @169a1097] [event: id] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Hello ``` ## [](#ブラウザーからアプリケーションを開始するための-xml)ブラウザーからアプリケーションを開始するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ブラウザーからのアプリケーションの開始の例 次の例は、フローを開始するように HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースを設定する方法を示しています。この例では、HTTP ​**Listener**​ ソースによって特定のポートでサーバー上の全ネットワークインターフェースがリスンされます。次に、​**Logger**​ コンポーネントによってメッセージ ​`Hello`​ が記録されます。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![ブラウザーからのアプリケーションの開始のフロー](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-startapp-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​ `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​ `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-startapp-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-startapp-example-2.png) 7. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[Logger\]**​ 設定画面で、​**\[Message (メッセージ)\]**​ 項目を ​`Hello`​ に設定します。 ![Logger の設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-startapp-example-3.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 メッセージ ​`Mule is up and kicking`​ を検索し、コンソールメッセージにアプリケーションが適切に起動したことが示されていることを確認します。 11. ブラウザーを開き、​`http://0.0.0.0:8081/trigger`​ と入力します。 HTTP ​**Listener**​ ソースがポート ​`8081`​ で要求をリスンすると、アプリケーションが起動されます。 12. Studio コンソールで、ログをスクロールすると次のような ​`Hello`​ メッセージが表示されます。 ```console INFO 2020-01-02 13:00:00,438 [[MuleRuntime].cpuLight.15: [http].httpFlow.CPU_LITE @169a1097] [event: id] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Hello ``` ## [](#ブラウザーからアプリケーションを開始するための-xml)ブラウザーからアプリケーションを開始するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ブラウザーからのアプリケーションの開始の例 次の例は、フローを開始するように HTTP 用 Anypoint Connector (HTTP Connector) の ​**Listener**​ ソースを設定する方法を示しています。この例では、HTTP ​**Listener**​ ソースによって特定のポートでサーバー上の全ネットワークインターフェースがリスンされます。次に、​**Logger**​ コンポーネントによってメッセージ ​`Hello`​ が記録されます。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![ブラウザーからのアプリケーションの開始のフロー](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-startapp-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 3. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 5. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​ `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​ `8081` 6. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-startapp-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-startapp-example-2.png) 7. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ の右にドラッグします。 8. **\[Logger\]**​ 設定画面で、​**\[Message (メッセージ)\]**​ 項目を ​`Hello`​ に設定します。 ![Logger の設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-startapp-example-3.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 メッセージ ​`Mule is up and kicking`​ を検索し、コンソールメッセージにアプリケーションが適切に起動したことが示されていることを確認します。 11. ブラウザーを開き、​`http://0.0.0.0:8081/trigger`​ と入力します。 HTTP ​**Listener**​ ソースがポート ​`8081`​ で要求をリスンすると、アプリケーションが起動されます。 12. Studio コンソールで、ログをスクロールすると次のような ​`Hello`​ メッセージが表示されます。 ```console INFO 2020-01-02 13:00:00,438 [[MuleRuntime].cpuLight.15: [http].httpFlow.CPU_LITE @169a1097] [event: id] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Hello ``` ## [](#ブラウザーからアプリケーションを開始するための-xml)ブラウザーからアプリケーションを開始するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 異なるパスへの HTTP 要求の転送の例 次の例には複数のフローがあり、各フローに、異なるサブパスへの要求をリスンする 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 要求のフロー](/mulesoft/current/ja-jp/http-connector/1.10/_images/request-mule-msg-map.png) ## [](#mule-アプリケーションの作成)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 リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-route-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-route-example-2.png) 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. 2 番目のフローを作成するには、\[HTTP\] の別の ​**\[Listener\]**​ を最初のフローの下にドラッグします。 8. **\[Connector configuration (コネクタ設定)\]**​ 項目では、\[HTTP\] の最初の ​**\[Listener\]**​ ソースで作成したものと同じ ​`HTTP_Listener_config`​ 設定を選択します。 9. **\[Path (パス)\]**​ を ​`employee`​ に設定します。 ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-route-example-2.png) 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)HTTP 要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 異なるパスへの HTTP 要求の転送の例 次の例には複数のフローがあり、各フローに、異なるサブパスへの要求をリスンする 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 要求のフロー](/mulesoft/current/ja-jp/http-connector/1.5/_images/request-mule-msg-map.png) Figure 1. パスへの HTTP 要求のフロー ## [](#mule-アプリケーションの作成)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 リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-route-example-1.png) Figure 2. HTTP リスナーのグローバル設定 ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-route-example-2.png) Figure 3. HTTP リスナーの設定 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. 2 番目のフローを作成するには、\[HTTP\] の別の ​**\[Listener\]**​ を最初のフローの下にドラッグします。 8. **\[Connector configuration (コネクタ設定)\]**​ 項目では、\[HTTP\] の最初の ​**\[Listener\]**​ ソースで作成したものと同じ ​`HTTP_Listener_config`​ 設定を選択します。 9. **\[Path (パス)\]**​ 項目を ​`employee`​ に設定します。 ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-route-example-2.png) Figure 4. 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)HTTP 要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 異なるパスへの HTTP 要求の転送の例 次の例には複数のフローがあり、各フローに、異なるサブパスへの要求をリスンする 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 要求のフロー](/mulesoft/current/ja-jp/http-connector/1.6/_images/request-mule-msg-map.png) ## [](#mule-アプリケーションの作成)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 リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-route-example-1.png) ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-route-example-2.png) 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. 2 番目のフローを作成するには、\[HTTP\] の別の ​**\[Listener\]**​ を最初のフローの下にドラッグします。 8. **\[Connector configuration (コネクタ設定)\]**​ 項目では、\[HTTP\] の最初の ​**\[Listener\]**​ ソースで作成したものと同じ ​`HTTP_Listener_config`​ 設定を選択します。 9. **\[Path (パス)\]**​ を ​`employee`​ に設定します。 ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-route-example-2.png) 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)HTTP 要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 異なるパスへの HTTP 要求の転送の例 次の例には複数のフローがあり、各フローに、異なるサブパスへの要求をリスンする 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 要求のフロー](/mulesoft/current/ja-jp/http-connector/1.7/_images/request-mule-msg-map.png) ## [](#mule-アプリケーションの作成)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 リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-route-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-route-example-2.png) 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. 2 番目のフローを作成するには、\[HTTP\] の別の ​**\[Listener\]**​ を最初のフローの下にドラッグします。 8. **\[Connector configuration (コネクタ設定)\]**​ 項目では、\[HTTP\] の最初の ​**\[Listener\]**​ ソースで作成したものと同じ ​`HTTP_Listener_config`​ 設定を選択します。 9. **\[Path (パス)\]**​ を ​`employee`​ に設定します。 ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-route-example-2.png) 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)HTTP 要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 異なるパスへの HTTP 要求の転送の例 次の例には複数のフローがあり、各フローに、異なるサブパスへの要求をリスンする 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 要求のフロー](/mulesoft/current/ja-jp/http-connector/1.8/_images/request-mule-msg-map.png) ## [](#mule-アプリケーションの作成)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 リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-route-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-route-example-2.png) 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. 2 番目のフローを作成するには、\[HTTP\] の別の ​**\[Listener\]**​ を最初のフローの下にドラッグします。 8. **\[Connector configuration (コネクタ設定)\]**​ 項目では、\[HTTP\] の最初の ​**\[Listener\]**​ ソースで作成したものと同じ ​`HTTP_Listener_config`​ 設定を選択します。 9. **\[Path (パス)\]**​ を ​`employee`​ に設定します。 ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-route-example-2.png) 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)HTTP 要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 異なるパスへの HTTP 要求の転送の例 次の例には複数のフローがあり、各フローに、異なるサブパスへの要求をリスンする 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 要求のフロー](/mulesoft/current/ja-jp/http-connector/1.9/_images/request-mule-msg-map.png) ## [](#mule-アプリケーションの作成)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 リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-route-example-1.png) ![HTTP リスナーの設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-route-example-2.png) 6. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. 2 番目のフローを作成するには、\[HTTP\] の別の ​**\[Listener\]**​ を最初のフローの下にドラッグします。 8. **\[Connector configuration (コネクタ設定)\]**​ 項目では、\[HTTP\] の最初の ​**\[Listener\]**​ ソースで作成したものと同じ ​`HTTP_Listener_config`​ 設定を選択します。 9. **\[Path (パス)\]**​ を ​`employee`​ に設定します。 ![HTTP リスナー設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-route-example-2.png) 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)HTTP 要求を転送するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 静的リソースの読み込みの例 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Load static resource**​ 操作を使用すると、ホームページやスクリプトなどの静的リソースを読み込むことができます。読み込むリソースのパスとファイル名を指定して操作を設定できます。必要に応じて、同じディレクトリ内の別のファイルの名前を、失敗時に使用するリソースとして設定することもできます。 次の例は、リソースをルックアップするための要求パスを使用して HTTP で使用する静的コンテンツを提供するように、HTTP ​**Listener**​ ソースと ​**Load static resource**​ 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![静的リソースの読み込みのフロー](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-loadresource-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-startapp-example-1.png) 6. **\[Load static resource\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Resource base path (リソースベースパス)\]**​ 項目を ​`/Users/max/Sites/index.html`​ に設定します。 8. **\[Default file (デフォルトファイル)\]**​ 項目をリソースと同じディレクトリにあるバックアップファイルの名前 (​`index.html`​ など) に設定します。 Mule プロジェクトへの相対パスを使用する必要がある場合は、変数 ​`${app.workDir}`​ を使用します。例: `resourceBasePath="${app.workDir}/images/"`​。失敗した場合、アプリケーションはバックアップファイルを読み込みます。 ![HTTP の Load static resource の設定](/mulesoft/current/ja-jp/http-connector/1.10/_images/http-loadresource-example-1.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. ブラウザーウィンドウで URL ​`http://0.0.0.0:8081/trigger`​ を入力します。 リソースのコンテンツがブラウザーに表示されます。 ## [](#静的リソースを読み込むための-xml)静的リソースを読み込むための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 静的リソースの読み込みの例 次の例は、リソースをルックアップするための要求パスを使用して HTTP で使用する静的コンテンツを提供するように、HTTP 用 Anypoint Connector (HTTP Connector) の Listener ソースと Load static resource 操作を設定する方法を示しています。 この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![静的リソースの読み込みのフロー](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-loadresource-flow.png) Figure 1. 静的リソースの読み込みのフロー ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-startapp-example-1.png) Figure 2. HTTP リスナーのグローバル設定 6. **\[Load static resource\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Resource base path (リソースベースパス)\]**​ 項目を ​`/Users/max/Sites/index.html`​ に設定します。 8. **\[Default file (デフォルトファイル)\]**​ 項目をリソースと同じディレクトリにあるバックアップファイルの名前 (​`index.html`​ など) に設定します。 Mule プロジェクトへの相対パスを使用する必要がある場合は、変数 ​`${app.workDir}`​ を使用します。例: `resourceBasePath="${app.workDir}/images/"`​。失敗した場合、アプリケーションはバックアップファイルを読み込みます。 ![HTTP の Load static resource の設定](/mulesoft/current/ja-jp/http-connector/1.5/_images/http-loadresource-example-1.png) Figure 3. HTTP の Load static resource の設定 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. ブラウザーウィンドウで URL ​`http://0.0.0.0:8081/trigger`​ を入力します。 リソースのコンテンツがブラウザーに表示されます。 ## [](#静的リソースを読み込むための-xml)静的リソースを読み込むための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 静的リソースの読み込みの例 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Load static resource**​ 操作を使用すると、ホームページやスクリプトなどの静的リソースを読み込むことができます。読み込むリソースのパスとファイル名を指定して操作を設定できます。必要に応じて、同じディレクトリ内の別のファイルの名前を、失敗時に使用するリソースとして設定することもできます。 次の例は、リソースをルックアップするための要求パスを使用して HTTP で使用する静的コンテンツを提供するように、HTTP ​**Listener**​ ソースと ​**Load static resource**​ 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![静的リソースの読み込みのフロー](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-loadresource-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-startapp-example-1.png) 6. **\[Load static resource\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Resource base path (リソースベースパス)\]**​ 項目を ​`/Users/max/Sites/index.html`​ に設定します。 8. **\[Default file (デフォルトファイル)\]**​ 項目をリソースと同じディレクトリにあるバックアップファイルの名前 (​`index.html`​ など) に設定します。 Mule プロジェクトへの相対パスを使用する必要がある場合は、変数 ​`${app.workDir}`​ を使用します。例: `resourceBasePath="${app.workDir}/images/"`​。失敗した場合、アプリケーションはバックアップファイルを読み込みます。 ![HTTP の Load static resource の設定](/mulesoft/current/ja-jp/http-connector/1.6/_images/http-loadresource-example-1.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. ブラウザーウィンドウで URL ​`http://0.0.0.0:8081/trigger`​ を入力します。 リソースのコンテンツがブラウザーに表示されます。 ## [](#静的リソースを読み込むための-xml)静的リソースを読み込むための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 静的リソースの読み込みの例 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Load static resource**​ 操作を使用すると、ホームページやスクリプトなどの静的リソースを読み込むことができます。読み込むリソースのパスとファイル名を指定して操作を設定できます。必要に応じて、同じディレクトリ内の別のファイルの名前を、失敗時に使用するリソースとして設定することもできます。 次の例は、リソースをルックアップするための要求パスを使用して HTTP で使用する静的コンテンツを提供するように、HTTP ​**Listener**​ ソースと ​**Load static resource**​ 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![静的リソースの読み込みのフロー](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-loadresource-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-startapp-example-1.png) 6. **\[Load static resource\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Resource base path (リソースベースパス)\]**​ 項目を ​`/Users/max/Sites/index.html`​ に設定します。 8. **\[Default file (デフォルトファイル)\]**​ 項目をリソースと同じディレクトリにあるバックアップファイルの名前 (​`index.html`​ など) に設定します。 Mule プロジェクトへの相対パスを使用する必要がある場合は、変数 ​`${app.workDir}`​ を使用します。例: `resourceBasePath="${app.workDir}/images/"`​。失敗した場合、アプリケーションはバックアップファイルを読み込みます。 ![HTTP の Load static resource の設定](/mulesoft/current/ja-jp/http-connector/1.7/_images/http-loadresource-example-1.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. ブラウザーウィンドウで URL ​`http://0.0.0.0:8081/trigger`​ を入力します。 リソースのコンテンツがブラウザーに表示されます。 ## [](#静的リソースを読み込むための-xml)静的リソースを読み込むための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 静的リソースの読み込みの例 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Load static resource**​ 操作を使用すると、ホームページやスクリプトなどの静的リソースを読み込むことができます。読み込むリソースのパスとファイル名を指定して操作を設定できます。必要に応じて、同じディレクトリ内の別のファイルの名前を、失敗時に使用するリソースとして設定することもできます。 次の例は、リソースをルックアップするための要求パスを使用して HTTP で使用する静的コンテンツを提供するように、HTTP ​**Listener**​ ソースと ​**Load static resource**​ 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![静的リソースの読み込みのフロー](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-loadresource-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP の ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-startapp-example-1.png) 6. **\[Load static resource\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Resource base path (リソースベースパス)\]**​ 項目を ​`/Users/max/Sites/index.html`​ に設定します。 8. **\[Default file (デフォルトファイル)\]**​ 項目をリソースと同じディレクトリにあるバックアップファイルの名前 (​`index.html`​ など) に設定します。 Mule プロジェクトへの相対パスを使用する必要がある場合は、変数 ​`${app.workDir}`​ を使用します。例: `resourceBasePath="${app.workDir}/images/"`​。失敗した場合、アプリケーションはバックアップファイルを読み込みます。 ![HTTP の Load static resource の設定](/mulesoft/current/ja-jp/http-connector/1.8/_images/http-loadresource-example-1.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. ブラウザーウィンドウで URL ​`http://0.0.0.0:8081/trigger`​ を入力します。 リソースのコンテンツがブラウザーに表示されます。 ## [](#静的リソースを読み込むための-xml)静的リソースを読み込むための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 静的リソースの読み込みの例 HTTP 用 Anypoint Connector (HTTP Connector) の ​**Load static resource**​ 操作を使用すると、ホームページやスクリプトなどの静的リソースを読み込むことができます。読み込むリソースのパスとファイル名を指定して操作を設定できます。必要に応じて、同じディレクトリ内の別のファイルの名前を、失敗時に使用するリソースとして設定することもできます。 次の例は、リソースをルックアップするための要求パスを使用して HTTP で使用する静的コンテンツを提供するように、HTTP ​**Listener**​ ソースと ​**Load static resource**​ 操作を設定する方法を示しています。この例を実行するには、Mule アプリケーションを作成し、HTTP グローバル要素を設定し、アプリケーションを実行し、curl コマンドでアプリケーションをテストする必要があります。 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![静的リソースの読み込みのフロー](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-loadresource-flow.png) ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. Web ブラウザーからアプリケーションを開始するように ​**\[Path (パス)\]**​ 項目を ​`/trigger`​ に設定します。 3. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内の HTTP ​**Listener**​ のすべてのインスタンスで使用できるグローバル要素を設定します。 4. **\[General (一般)\]**​ タブで、次の項目を設定します。 - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 5. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-startapp-example-1.png) 6. **\[Load static resource\]**​ 操作を \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 7. **\[Resource base path (リソースベースパス)\]**​ 項目を ​`/Users/max/Sites/index.html`​ に設定します。 8. **\[Default file (デフォルトファイル)\]**​ 項目をリソースと同じディレクトリにあるバックアップファイルの名前 (​`index.html`​ など) に設定します。 Mule プロジェクトへの相対パスを使用する必要がある場合は、変数 ​`${app.workDir}`​ を使用します。例: `resourceBasePath="${app.workDir}/images/"`​。失敗した場合、アプリケーションはバックアップファイルを読み込みます。 ![HTTP の Load static resource の設定](/mulesoft/current/ja-jp/http-connector/1.9/_images/http-loadresource-example-1.png) 9. Mule アプリケーションを保存します。 10. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 11. ブラウザーウィンドウで URL ​`http://0.0.0.0:8081/trigger`​ を入力します。 リソースのコンテンツがブラウザーに表示されます。 ## [](#静的リソースを読み込むための-xml)静的リソースを読み込むための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 静的リソースの読み込みの概要 ホームページやスクリプトなどの静的リソースを読み込むように HTTP Connector を設定できます。読み込むリソースのパスとファイル名を設定します。必要に応じて、同じディレクトリ内の別のファイルの名前を失敗時に使用するリソースとして設定できます。 ## [](#関連情報)関連情報 - [静的リソースの読み込み方法](https://docs.mulesoft.com/jp/http-connector/1.5/http-load-static-res-task) - [HTTP Connector XML リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-connector-xml-reference) - [HTTP Connector リファレンス](https://docs.mulesoft.com/jp/http-connector/1.5/http-documentation)