---
schema_version: "1"
id: 86623d039caea738fbb057a95584bed825d6d5b33c2701a033cc3fc7d6db21bc
title: HTTP ポリシートランスフォーム拡張機能
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-gateway/policies-custom-http-transform.md
canonical_url: https://docs.mulesoft.com/jp/mule-gateway/policies-custom-http-transform
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 018e961aee67e35245a84d345c5f778ad4f74806dbb3bb4705fc355a8ccb52c1
description: MuleSoft Documentation Site
latest: true
---
# HTTP ポリシートランスフォーム拡張機能

Mule バージョン 4.1.0 以降では、HTTP ポリシートランスフォーム拡張機能をポリシーで使用できます。この拡張機能により、さまざまなポリシーを通過する HTTP 要求および応答の変更が簡略化されます。このドキュメントは、HTTP ポリシートランスフォーム拡張機能 3.0.0 以降に適用されます。

## [](#maven-連動関係としての拡張機能のポリシーへの追加)Maven 連動関係としての拡張機能のポリシーへの追加

ポリシーで HTTP ポリシートランスフォーム拡張機能を使用するには、最初に Maven 連動関係をポリシーの POM ファイルに追加する必要があります。ポリシーの POM ファイルの dependency セクションに次のコードを追加します。

```xml
  <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](https://docs.mulesoft.com/jp/http-connector/1.10/)​ が不必要にポリシー JAR ファイルに追加されます。コネクタは、ポリシーが適用されるアプリケーションにすでに存在します。そのため、上記のスニペットには exclusion が追加されています。

また、ポリシーの POM ファイルで ​`mule-maven-plugin`​ パラメーターバージョンを ​`3.3.2`​ 以降に設定してください。

## [](#namespace-名前空間)Namespace (名前空間)

```xml
<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

### [](#add-headers-操作)Add Headers 操作

#### [](#add-request-headers)Add Request Headers

この操作は、要求にヘッダーを挿入するために使用されます。この操作を使用するには、次の場所からコールを開始する必要があります。

- ソースポリシー (​`execute-next`​ が呼び出される前)。
- 操作ポリシー (​`execute-next`​ が呼び出される前)。

##### [](#パラメーター)パラメーター

- `headers`
    
    現在のメッセージ属性に追加されるヘッダーのマップに解決される DataWeave 式。
    
    **例**
    
    ```xml
    <http-transform:add-request-headers>
    <http-transform:headers>#[
    {
      'FirstHeader': 'FirstHeaderValue',
      'SecondHeader': 'SecondHeaderValue',
      'ThirdHeader': 'ThirdHeaderValue'
    }
    ]</http-transform:headers>
    </http-transform:add-request-headers>
    ```

#### [](#add-request-headers-list)Add Request Headers List

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">この操作は mule-http-policy-transform-extension 3.1.0 で追加されました。</td></tr></tbody></table>

この操作は、要求にヘッダーを挿入するために使用されます。この操作を使用するには、次の場所からコールを開始する必要があります。

- ソースポリシー (​`execute-next`​ が呼び出される前)。
- 操作ポリシー (​`execute-next`​ が呼び出される前)。

##### [](#パラメーター-2)パラメーター

- `http-transform:new-headers`
    
    各ヘッダーに ​`http-transform:header`​ を追加する必要があります。 各 http-transform:header には、リテラル式または DataWeave 式で定義された ​`headerName`​ および ​`headerValue`​ 属性が必要です。
    
    **例**
    
    ```xml
    <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 式が許可されます。

**例**

```xml
...
configuration:
  - propertyName: requestHeaders
    name: Reques Headers
    description: Header Names and values
    type: keyvalues
    optional: true
    allowMultiple: true
...
```

上記の設定では、ハンドルバーを使用して、ポリシーに追加されるヘッダーを展開できます。

```xml
...
<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>
...
```

#### [](#add-response-headers)Add Response Headers

この操作は、応答にヘッダーを挿入するために使用されます。この操作を使用するには、次の場所からコールを開始する必要があります。

- ソースポリシー (​`execute-next`​ が呼び出された後)。
- 操作ポリシー (​`execute-next`​ が呼び出された後)。

##### [](#パラメーター-3)パラメーター

- `headers`
    
    現在のメッセージ属性に追加されるヘッダーのマップに解決される DataWeave 式。
    
    **例**
    
    ```xml
    <http-transform:add-response-headers>
    <http-transform:headers>#[
    {
      'FirstHeader': 'FirstHeaderValue',
      'SecondHeader': 'SecondHeaderValue',
      'ThirdHeader': 'ThirdHeaderValue'
    }
    ]</http-transform:headers>
    </http-transform:add-response-headers>
    ```

#### [](#add-response-headers-list)Add Response Headers List

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">この操作は mule-http-policy-transform-extension 3.1.0 で追加されました。</td></tr></tbody></table>

この操作は、応答にヘッダーを挿入するために使用されます。この操作を使用するには、次の場所からコールを開始する必要があります。

- ソースポリシー (​`execute-next`​ が呼び出された後)。
- 操作ポリシー (​`execute-next`​ が呼び出された後)。

##### [](#パラメーター-4)パラメーター

- `http-transform:new-headers`
    
    各ヘッダーに ​`http-transform:header`​ を追加する必要があります。 各 http-transform:header には、リテラル式または DataWeave 式で定義された ​`headerName`​ および ​`headerValue`​ 属性が必要です。
    
    **例**
    
    ```xml
    <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 式が許可されます。

**例**

```xml
...
configuration:
  - propertyName: responseHeaders
    name: Reques Headers
    description: Header Names and values
    type: keyvalues
    optional: true
    allowMultiple: true
...
```

上記の設定では、ハンドルバーを使用して、ポリシーに追加されるヘッダーを展開できます。

```xml
...
<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>
...
```

### [](#remove-headers)Remove Headers

この操作は、HTTP リスナーおよびリクエスターの要求と応答の両方からヘッダーを削除します。返される属性は、入力属性と同じ種別です。この操作では大文字と小文字が区別されます。

#### [](#パラメーター-5)パラメーター

- `header-names`
    
    削除するヘッダー名の配列に解決される DataWeave 式。
    
    **例**
    
    ```xml
    <http-transform:remove-headers>
        <http-transform:header-names>#[['FirstHeader', 'SecondHeader']]</http-transform:header-names>
    </http-transform:remove-headers>
    ```

### [](#set-response)Set Response

この操作は、完全な HTTP 応答を設定します。この操作は、 ポリシーによってフローが実行されないようにする場合、つまり、HTTP 応答が設定されていない場合に使用されます。

#### [](#パラメーター-6)パラメーター

- `statusCode`​ (状況コード) — 応答の HTTP 状況コードを表す整数。
- `reasonPhrase`​ (理由を示す語句) — 応答の HTTP の理由を示す語句を表す文字列。
- `body`​ (本文) — HTTP 応答のコンテンツ。
- headers (ヘッダー) — HTTP レスポンスヘッダーのマップに解決される DataWeave 式。
    
    **例**
    
    ```xml
    <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>
    ```

### [](#set-request)Set Request

この操作は、HTTP リクエスターが実行する完全な HTTP 要求を設定します。

#### [](#パラメーター-7)パラメーター

- `requestPath`​ (要求パス): HTTP 要求が送信されるパス。
- `body`​ (本文): HTTP 要求のコンテンツ。
- `headers`​ (ヘッダー): HTTP リクエストヘッダーのマップに解決される DataWeave 式。
- `uriParams`​ (URI パラメーター): HTTP 要求の URI パラメーターのマップに解決される DataWeave 式。
- `queryParams`​ (クエリパラメーター): HTTP 要求のクエリパラメーターのマップに解決される DataWeave 式。
    
    **例**
    
    ```xml
    <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>
    ```