Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule バージョン 4.1.0 以降では、HTTP ポリシートランスフォーム拡張機能をポリシーで使用できます。この拡張機能により、さまざまなポリシーを通過する HTTP 要求および応答の変更が簡略化されます。このドキュメントは、HTTP ポリシートランスフォーム拡張機能 3.0.0 以降に適用されます。
ポリシーで HTTP ポリシートランスフォーム拡張機能を使用するには、最初に Maven 連動関係をポリシーの POM ファイルに追加する必要があります。ポリシーの POM ファイルの dependency セクションに次のコードを追加します。
<dependency>
<groupId>com.mulesoft.anypoint</groupId>
<artifactId>mule-http-policy-transform-extension</artifactId>
<version>${httpPolicyTransformVersion}</version>
<classifier>mule-plugin</classifier>
<exclusions>
<exclusion>
<groupId>org.mule.connectors</groupId>
<artifactId>mule-http-connector</artifactId>
</exclusion>
</exclusions>
</dependency>
NOTE: HTTP ポリシートランスフォーム拡張機能を使用するポリシーがパッケージ化されている場合、Mule HTTP Connector が不必要にポリシー JAR ファイルに追加されます。コネクタは、ポリシーが適用されるアプリケーションにすでに存在します。そのため、上記のスニペットには exclusion が追加されています。
また、ポリシーの POM ファイルで mule-maven-plugin
パラメーターバージョンを 3.3.2
以降に設定してください。
<mule
xmlns:http-transform="http://www.mulesoft.org/schema/mule/http-policy-transform"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http-policy-transform http://www.mulesoft.org/schema/mule/http-policy-transform/current/mule-http-policy-transform.xsd">
Add Headers 操作
Add Request Headers
Add Request Headers List (mule-http-policy-transform-extension 3.1.0 以降)
Add Response Headers
Add Response Headers List (mule-http-policy-transform-extension 3.1.0 以降)
Remove Headers
Set Response
Set Request
この操作は、要求にヘッダーを挿入するために使用されます。この操作を使用するには、次の場所からコールを開始する必要があります。
ソースポリシー (execute-next
が呼び出される前)。
操作ポリシー (execute-next
が呼び出される前)。
この操作は mule-http-policy-transform-extension 3.1.0 で追加されました。 |
この操作は、要求にヘッダーを挿入するために使用されます。この操作を使用するには、次の場所からコールを開始する必要があります。
ソースポリシー (execute-next
が呼び出される前)。
操作ポリシー (execute-next
が呼び出される前)。
http-transform:new-headers
各ヘッダーに http-transform:header
を追加する必要があります。
各 http-transform:header には、リテラル式または DataWeave 式で定義された headerName
および headerValue
属性が必要です。
例
<http-transform:add-request-headers-list>
<http-transform:new-headers>
<http-transform:header headerName="FirstHeader" headerValue="FirstHeaderValue"/>
<http-transform:header headerName="#['SecondHeader']" headerValue="#['SecondHeaderValue']"/>
<http-transform:header headerName="ThirdHeader" headerValue="ThirdHeaderValue"/>
</http-transform:new-headers>
</http-transform:add-request-headers-list>
ポリシー設定に複数の値を持つ keyvalues
型のプロパティがある場合、この操作では DataWeave 式が許可されます。
例
...
configuration:
- propertyName: requestHeaders
name: Reques Headers
description: Header Names and values
type: keyvalues
optional: true
allowMultiple: true
...
上記の設定では、ハンドルバーを使用して、ポリシーに追加されるヘッダーを展開できます。
...
<http-transform:add-request-headers-list>
<http-transform:new-headers>
{{#each requestHeaders}}
<http-transform:header headerName="{{{this.key}}}" headerValue="{{{this.value}}}"/>
{{/each}}
</http-transform:new-headers>
</http-transform:add-request-headers-list>
...
この操作は、応答にヘッダーを挿入するために使用されます。この操作を使用するには、次の場所からコールを開始する必要があります。
ソースポリシー (execute-next
が呼び出された後)。
操作ポリシー (execute-next
が呼び出された後)。
headers
現在のメッセージ属性に追加されるヘッダーのマップに解決される DataWeave 式。
例
<http-transform:add-response-headers>
<http-transform:headers>#[
{
'FirstHeader': 'FirstHeaderValue',
'SecondHeader': 'SecondHeaderValue',
'ThirdHeader': 'ThirdHeaderValue'
}
]</http-transform:headers>
</http-transform:add-response-headers>
この操作は mule-http-policy-transform-extension 3.1.0 で追加されました。 |
この操作は、応答にヘッダーを挿入するために使用されます。この操作を使用するには、次の場所からコールを開始する必要があります。
ソースポリシー (execute-next
が呼び出された後)。
操作ポリシー (execute-next
が呼び出された後)。
http-transform:new-headers
各ヘッダーに http-transform:header
を追加する必要があります。
各 http-transform:header には、リテラル式または DataWeave 式で定義された headerName
および headerValue
属性が必要です。
例
<http-transform:add-response-headers-list>
<http-transform:new-headers>
<http-transform:header headerName="FirstHeader" headerValue="FirstHeaderValue"/>
<http-transform:header headerName="#['SecondHeader']" headerValue="#['SecondHeaderValue']"/>
<http-transform:header headerName="ThirdHeader" headerValue="ThirdHeaderValue"/>
</http-transform:new-headers>
</http-transform:add-response-headers-list>
ポリシー設定に複数の値を持つ keyvalues
型のプロパティがある場合、この操作では DataWeave 式が許可されます。
例
...
configuration:
- propertyName: responseHeaders
name: Reques Headers
description: Header Names and values
type: keyvalues
optional: true
allowMultiple: true
...
上記の設定では、ハンドルバーを使用して、ポリシーに追加されるヘッダーを展開できます。
...
<http-transform:add-reponse-headers-list>
<http-transform:new-headers>
{{#each responseHeaders}}
<http-transform:header headerName="{{{this.key}}}" headerValue="{{{this.value}}}"/>
{{/each}}
</http-transform:new-headers>
</http-transform:add-response-headers-list>
...
この操作は、HTTP リスナーおよびリクエスターの要求と応答の両方からヘッダーを削除します。返される属性は、入力属性と同じ種別です。この操作では大文字と小文字が区別されます。
この操作は、完全な HTTP 応答を設定します。この操作は、 ポリシーによってフローが実行されないようにする場合、つまり、HTTP 応答が設定されていない場合に使用されます。
statusCode
(状況コード) — 応答の HTTP 状況コードを表す整数。
reasonPhrase
(理由を示す語句) — 応答の HTTP の理由を示す語句を表す文字列。
body
(本文) — HTTP 応答のコンテンツ。
headers (ヘッダー) — HTTP 応答のヘッダーのマップに解決される DataWeave 式。
例
<http-transform:set-response statusCode="203" reasonPhrase="policyReasonPhrase">
<http-transform:body>#['policyPayload']</http-transform:body>
<http-transform:headers>#[
{
'FirstHeader': 'FirstHeaderValue',
'SecondHeader': 'SecondHeaderValue',
'ThirdHeader': 'ThirdHeaderValue'
}
]</http-transform:headers>
</http-transform:set-response>
この操作は、HTTP リクエスターが実行する完全な HTTP 要求を設定します。
requestPath
(要求パス): HTTP 要求が送信されるパス。
body
(本文): HTTP 要求のコンテンツ。
headers
(ヘッダー): HTTP 要求のヘッダーのマップに解決される DataWeave 式。
uriParams
(URI パラメーター): HTTP 要求の URI パラメーターのマップに解決される DataWeave 式。
queryParams
(クエリパラメーター): HTTP 要求のクエリパラメーターのマップに解決される DataWeave 式。
例
<http-transform:set-requester-request requestPath="/backend/policy/{policyUriParam}">
<http-transform:body>#['policyPayload']</http-transform:body>
<http-transform:headers>#[
{
'FirstHeader': 'FirstHeaderValue',
'SecondHeader': 'SecondHeaderValue',
'ThirdHeader': 'ThirdHeaderValue'
}
]</http-transform:headers>
<http-transform:uri-params>#[
{
'FirstUriParam': 'FirstUriParamValue',
'SecondUriParam': 'SecondUriParamValue'
}
]</http-transform:uri-params>
<http-transform:query-params>#[
{
'FirstQueryParam': 'FirstQueryParamValue',
'SecondQueryParam': 'SecondQueryParamValue'
}
]</http-transform:query-params>
</http-transform:set-requester-request>